Dzień dobry
chcę napisać program do obsługi połączenia z usługą internetową.
Ma to być alternatywny klient.
Dlatego nie mam dostępu do kodów i algorytmów używanego protokołu- muszę napisać sam.
Czytałem trochę forum i pewne wątki były bardzo interesujące
Zwracam się do was z prośbą o nasuniecie pomysłów co bym sam nie musiał wywarzać już otwartych drzwi.
Nie che wymyślać koła od nowa zwłaszcza jeżeli by miało być kwadratowe
Wracając do meritum, protokół który muszę obsłużyć nie ma w sobie informacji o długości poszczególnych pakietów,
Pakiety dzielą się za pomocą 2 bajtów 0xEE 0xEE. początkowy bajt mówi nam o rodzaju pakietu niestety cześć pakietów nie ma stałej długości.
czyli powinienem bufor podzielić na mniejsze ciągi zakończone xEEEE a ostatnią cześć bez zakończenia zostawić do doklejenia do następnej porcji danych
Moje pytanie jest takie czy istnieją jakieś biblioteki ułatwiające parsowanie takiego rodzaju pakietów ?
Czy obsługa bufora recv i obsługa dekodowania pakietu powinno być w osobnych wątkach ?
Nie wiem czy poprawnie myślę ale chcę najpierw stworzyć tablice z poszczególnymi pakietami a następnie obsługiwać to po kolei - ale zapewne to jest blednę podejście :) co o tym sądzicie
Informacje to będą kilobajty nie magabajty
recv
, prędzej czy później wczyta tylko jednego bajta zamiast 2 i musisz to poprawnie obsłużyć. (TCP gwarantuje tylko zachowanie kolejności strumienia danych, nie całości pakietów).