我想做一个C++程序工作,这是由别人写的。我很难理解它。我甚至不能%100确信,我们可以使用poll()与UDP套接字但我重构,采用轮询()的代码从UDP套接字如下:民意调查()与非阻塞udp套接字
fd.fd = m_bsocket;
fd.events = POLLIN;
iPollResult = poll(&fd, 1, iTimeout);
if(iPollResult > 0)
{
int iReceivedByteCount = recv(m_bsocket, p_pBuffer, p_iBufferSize, 0);
if(iReceivedByteCount > 0)
{
*p_pReadSize = iReceivedByteCount;
}
else
{
eReturnValue = UDP_READ_ERROR;
}
}
return eReturnValue;
我试图发送UDP数据包使用命令行到此程序:
echo“123”| nc -u 127.0.0.1 25
它看起来像poll()总是超时并返回0,因此我什么都看不懂。
我也写了一个小的c#程序,发送udp数据报,但我无法收到消息。我想知道我在做什么错...
什么是超时设置? –
对不起,1000毫秒。我也试过使它达到10000毫秒,但没有帮助。也许我以错误的方式创建套接字。 –
如果这是unix,请查看netstat和tcpdump是否可以提供更多信息。类似的工具存在于Windows中。 – stefaanv