我正在尝试制作一个由其他人编写的 c++ 程序。我很难理解它。我什至不 %100 确定我们可以将 poll() 与 UDP 套接字一起使用,但我正在重构的代码是使用 poll() 从 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 数据包:
回声“123” | 数控-u 127.0.0.1 25
看起来 poll() 总是超时并返回 0,因此我无法读取任何内容。
我还写了一个发送udp数据报的小c#程序,但是收不到消息。我想知道我做错了什么......