Przesyłanie danych przez gniazda (praktyka)

0

Witam, chciałem zapytać się czy są jakieś konkretne zasady dotyczące przesyłania danych przez gniazda ? Mam tu na myśli duże ilości danych, czyli np. pliki.

Pisze właśnie program, z użyciem WinSock, przesyłanie wygląda tak jak w komunikacji FTP, no i wszystko działało pięknie na localhoscie. Postanowiłem sprawdzić jak sprawuje się komunikacja między dwoma komputerami przez port od drukarki, no i dupa. Operacja za każdym razem przerywała się po przesłaniu ok. 150 KB. Nie pojawiał się żaden błąd więc najprawdopodobniej działo się tak ponieważ w którejś z pętli funkcja send() lub recv() zwracała -1.

Zacząłem kombinować i doszedłem do pewnych wniosków:

  1. Bufor przesyłanych danych nie powinien być większy niż 2048 bajtów.

  2. Najlepiej żeby bufor w pętli odbierającej był mniejszy niż w wysyłającej.

  3. Najlepiej żeby w pętli odbierającej pojawił się Sleep() na ok. 10 milisekund.

Czy ktoś może jakoś uzasadnić moje spostrzeżenia, i wyjaśnić dlaczego teraz działa a przed tem nie ?

Czy są jakieś dokumentacje na ten temat ?

0

Nie jestem pewien, ale nie jest to czasem wina po prostu portu drukarki? Nie jest to najszybsze znane ludzkości połączenie.

0

hmmm... mam przy połączeniu drukarkowym napisane 4 Mb/s,
a jak sie łącze z netem to 48 Kb/s więc wygląda że chyba nie...

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