Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在开发基于 UDP 协议的服务器-客户端应用程序。服务器是用 C++ 编写的,客户端是用 C# 编写的。
在服务器端,我使用 recvfrom() 获取缓冲区:
int bufLen = recvfrom(s, buf, 1024, NULL, (sockaddr*)&addr, &addrlen);
奇怪的是,收到的 buf 正是我从客户端发送的,但 bufLen 是 -1,即 SOCKET_ERROR。
我不知道问题可能是什么。请帮忙。太感谢了。
您的数据报太大,或者您的缓冲区太小。
数据报比你的缓冲区大,所以它被截断了,你从 recvfrom 得到一个错误返回,GetLastError() 返回 10040,('WSAEMSGSIZE')。