ioctl () для программирования сокетов в C - PullRequest
0 голосов
/ 03 ноября 2011

Я использую ioctl (), чтобы прочитать количество символов в моем буфере в программе сокетов. Однако иногда, когда заполнение буфера задерживается, ioctl () неверно интерпретирует его как конец сообщения. Как этого можно избежать, если бы я использовал ioctl (), чтобы узнать длину моего входящего сообщения. Также я не знаю размер сообщения, которое я получу, поэтому я не смог бы получить его в статическом буфере recv ().

Спасибо, Манодж

1 Ответ

3 голосов
/ 03 ноября 2011

Сделать размер сообщения частью сообщения, предпочтительно, начальных байтов.т.е. сделать первые 2 байта размером остальной части сообщения.Таким образом, вы знаете, что вам нужно подождать, пока будут прочитаны 2 прочитанных байта, а затем прочитать размер сообщения.

...