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。

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

UDP Socket: recvfrom() returns -1 (SOCKET_ERROR)

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

数据报大于缓冲区,因此它被截断,您从 recvfrom 获得错误返回,GetLastError() 返回 10040('WSAEMSGSIZE')。