UDP Socket: recvfrom() returns -1 (SOCKET_ERROR)
本文关键字:SOCKET ERROR returns recvfrom Socket UDP | 更新日期: 2023-09-27 18:35:30
我正在开发基于 UDP 协议的服务器客户端应用程序。服务器是用 C++ 编写的,客户端是用 C# 编写的。
在服务器端,我使用 recvfrom() 获取缓冲区:
int bufLen = recvfrom(s, buf, 1024, NULL, (sockaddr*)&addr, &addrlen);
奇怪的是,收到的 buf 正是我从客户端发送的,但 bufLen 是 -1,这是SOCKET_ERROR。
我不知道问题可能是什么。请帮忙。谢谢一百万。
数据报太大,或者缓冲区太小。
数据报大于缓冲区,因此它被截断,您从 recvfrom 获得错误返回,GetLastError() 返回 10040('WSAEMSGSIZE')。