Gniazdka

0

Mam pytanko. Mam zrobiony program oparty na clientsocket i serversocket. Przy przesyłaniu danych ucina mi dane od serwera do klienta.Przykład:
wysyłam zapytanie od klienta,np.: przeslij liste katalogów
serwer odpowiada, ale przy odpowiedzi dostaje obciety tekst:
"plik.exe plik2.bat pk", a powinno być "plik.exe plik2.bat pk.bat pk2.exe ha.exe". W gdzie moze byc błąd?

0

Spróbuj dodać na końcu jakiś unikalny znak (@, # albo cokolwiek innego, byle nie występowało w "zapytaniach") i przy odbiorze dodawaj to co się odebrało do "buforu" (jakiejś zmiennej string). I dopiero jak ten znaczek będzie, to wycinaj dany fragment (kończący się tym znaczkiem) z buforu i na nim wykonuj operacje. Powinno pomóc. Po prostu jak się wysyła, to czasem to tnie, a czasem łączy i w kawałkach dochodzi, albo zlepione kilka informacji.

0

Najlepiej bedzie jak wyslesz na poczatku naglowek (np cardinal, word czy byte) w ktorym bedzie wielkosc pakietu, potem odczytujesz az odczytasz odpowiednia ilosc danych (np w petli while). Wtedy nie bedziesz musial uzywac 'unikatowego' znaku (choc troszke wiecej roboty przy tym)

1 użytkowników online, w tym zalogowanych: 0, gości: 1