我正在开发一个基于UDP协议的服务器客户端应用程序。服务器是用c++编写的,客户端是用C#编写的。
在服务器端,我使用recvfrom()获得缓冲区:
int bufLen = recvfrom(s, buf, 1024, NULL, (sockaddr*)&addr, &addrlen);
奇怪的是,接收到的buf正是我从客户端发送的,但是bufLen是-1,也就是SOCKET_ERROR。
我不知道会有什么问题。请帮帮忙。谢谢你一百万。
发布于 2014-12-29 04:54:56
您的数据报太大,或者缓冲区太小。
数据报比缓冲区更大,因此它会被转换,您将从recvfrom得到一个错误返回,GetLastError()返回10040,('WSAEMSGSIZE')。
https://stackoverflow.com/questions/27689067
复制