0

我正在开发基于 UDP 协议的服务器-客户端应用程序。服务器是用 C++ 编写的,客户端是用 C# 编写的。

在服务器端,我使用 recvfrom() 获取缓冲区:

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

奇怪的是,收到的 buf 正是我从客户端发送的,但 bufLen 是 -1,即 SOCKET_ERROR。

我不知道问题可能是什么。请帮忙。太感谢了。

4

1 回答 1

1

您的数据报太大,或者您的缓冲区太小。

数据报比你的缓冲区大,所以它被截断了,你从 recvfrom 得到一个错误返回,GetLastError() 返回 10040,('WSAEMSGSIZE')。

于 2014-12-29T12:54:56.580 回答