
使用UDP协议进行socket网络通信,接收端recvfrom接收返回-1
2.经过多次试验,排查到原因,是因为客户端使用大小为32的缓冲区char recvBuffer[32]进行接收,但主控发送时,发送的大小为sizeof(CLIENTDATA) = 65,导致客户端接收失败,返回-1,即使客户端套接字状态正常依然返回-1。当客户端接收缓冲区改为大于主控发送的数据的任意大小缓冲区,recvfrom不再返回-1。3.所以,使用UDP进行数据传输时,接收端recvfrom时缓冲区的大小要大于发送端发送数据的大小,否则recvfrom返回SOCKET_ERROR,即-1。






