这是一个非常基本的问题(希望如此),关于在 windows、c++ 中使用 recvfrom() 。
我正在实现一个非常基本的 UDP 函数,它发送一条消息,然后接收一条字符消息作为回报。当我调用 recvfrom() 时,我得到了相应的消息,但该函数不返回接收到的字节数(字符)。相反,它返回 0。片段:
sendto(sock, "10000;1;Chris\0", 14, 0,
(struct sockaddr FAR *) &sin, sizeof(sin));
if(nchars = recvfrom(sock, buf, LINELEN, 0, NULL, NULL) < 0)
errexit("recvfrom failed: error %d\n", GetLastError());
buf[nchars] = '\0';
我的返回消息需要附加一个空字符,但 nchars 一直返回为 0,这使得这很困难。任何想法为什么 recvfrom() 不会返回接收到的字节数?