Как проверить размер сообщения из recvfrom ()? - PullRequest
0 голосов
/ 08 ноября 2011

Как проверить, что сообщение от recvfrom () является правильным размером в C или C ++ для Windows?

Спасибо.

1 Ответ

1 голос
/ 08 ноября 2011

recvfrom возвращает количество байтов в дейтаграмме, фактически полученных.

Все, что вам нужно, это

if (iResult < 0) { /* network error */ }
if (iResult != BufLen) { /* wrong size */ }

Старый ответ, не по теме

Вы должны объявить переменную для хранения размера и передать ее адрес в качестве параметра fromlen.

recvfrom заполнит фактический размер дейтаграммы адрес отправителя (IP и порт, поэтому вы можете отправить ответ, если хотите).

Затем вы можете проверить фактический размер по сравнению с тем, что вы ожидали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...