【发布时间】:2013-02-25 00:03:22
【问题描述】:
这是一个关于在 c++ 中使用 recvfrom() 的非常基本的问题(希望如此)。
我正在实现一个非常基本的 UDP 函数,它发送一条消息,然后接收一条字符消息作为回报。当我调用 recvfrom() 时,我得到了相应的消息,但该函数不返回接收到的字节数(字符)。相反,它返回 0。 sn-p:
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() 不会返回接收到的字节数?
【问题讨论】:
-
当然,如果
recvfrom返回零,您实际上并没有收到任何东西。我非常怀疑recvfrom是否以如此根本的方式被破坏 - 毕竟,它很可能是您的浏览器用来查看此页面的内容......