Буфер в сокетах для чтения - PullRequest
0 голосов
/ 29 июля 2011

Если возвращаемое значение read () совпадает с размером буфера, как мне прочитать остальную информацию?Если чтение вызывается снова, будет ли считываться следующий фрагмент данных или снова считываться с начала, или информация, не считанная в буфер, навсегда потеряна?

1 Ответ

6 голосов
/ 29 июля 2011

В сокете TCP (SOCK_STREAM) вы получаете следующую порцию данных.Чтение из TCP-сокетов аналогично чтению из файла.

В сокете дейтаграммы UDP (SOCK_DGRAM), если вашего буфера недостаточно для использования всей дейтаграммы, вы теряете остальную часть дейтаграммы.Последующее чтение будет использовать следующую датаграмму, которая прибывает.

...