RedHat Socket没有收到数据包

时间:2016-04-18 09:44:19

标签: c++ sockets udp client-server redhat

我目前正在RedHat上运行一个应用程序,这会导致一些问题。 我有两台计算机都运行RedHat并使用UDP套接字进行通信。

在两端正确创建套接字,客户端正确绑定服务器。当客户端发送消息时,我可以看到在服务器端使用TCPDump正确接收消息但是套接字上的函数Receive()从未被调用,应用程序什么都不做。

当我在localhost上执行此操作时,该应用程序运行良好。

有没有人知道问题出在哪里?

1 个答案:

答案 0 :(得分:2)

执行tcpdump时,实际上是在尝试了解数据包是否已到达目标计算机,而不是实际目标(即正在侦听的应用程序,即服务器程序)。 tcpdump只能保证数据包到达服务器计算机并且TCP堆栈具有它。现在,您的应用程序(即服务器程序)可以使用它。只有在recv()成功时才会发生这种情况。您始终可以了解所有套接字功能背后的错误并执行必要的纠正操作。