c # — сокет UDP: recvfrom () возвращает -1 (SOCKET_ERROR)

Я работаю над приложением сервер-клиент на основе протоколов UDP. Сервер написан на C ++, а клиент — на C #.

На стороне сервера я получаю буфер с помощью recvfrom ():

int bufLen = recvfrom(s, buf, 1024, NULL, (sockaddr*)&addr, &addrlen);

Странно то, что полученный buf — это именно то, что я отправил от клиента, но bufLen — это -1, то есть SOCKET_ERROR.

Я понятия не имею, в чем может быть проблема. пожалуйста помоги. Бесконечно благодарен.

0

Решение

Ваша датаграмма слишком велика или ваш буфер слишком мал.

Дейтаграмма больше, чем ваш буфер, поэтому она работает, вы получаете ошибку, возвращаемую из recvfrom, а GetLastError () возвращает 10040 (‘WSAEMSGSIZE’).

1

Другие решения


По вопросам рекламы [email protected]