UDP套接字:recvfrom()返回-1(SOCKET_ERROR)

时间:2014-12-29 12:39:17

标签: c# c++ sockets recvfrom

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

在服务器端,我使用recvfrom():

获取缓冲区
int bufLen = recvfrom(s, buf, 1024, NULL, (sockaddr*)&addr, &addrlen);

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

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

1 个答案:

答案 0 :(得分:1)

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

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