Я работаю над приложением сервер-клиент на основе протоколов UDP. Сервер написан на C ++, а клиент — на C #.
На стороне сервера я получаю буфер с помощью recvfrom ():
int bufLen = recvfrom(s, buf, 1024, NULL, (sockaddr*)&addr, &addrlen);
Странно то, что полученный buf — это именно то, что я отправил от клиента, но bufLen — это -1, то есть SOCKET_ERROR.
Я понятия не имею, в чем может быть проблема. пожалуйста помоги. Бесконечно благодарен.
Ваша датаграмма слишком велика или ваш буфер слишком мал.
Дейтаграмма больше, чем ваш буфер, поэтому она работает, вы получаете ошибку, возвращаемую из recvfrom, а GetLastError () возвращает 10040 (‘WSAEMSGSIZE’).