他の誰かが書いた C++ プログラムを動作させようとしています。理解に苦しみます。UDP ソケットで poll() を使用できるかどうかは 100% もわかりませんが、リファクタリングしているコードでは、次のように 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" | nc -u 127.0.0.1 25
poll() は常にタイムアウトして 0 を返すように見えるため、何も読み取れません。
udp データグラムを送信する小さな c# プログラムも作成しましたが、メッセージを受信できません。私は何が間違っているのだろうか...