我有一个C++应用程序,它接受TCP连接,然后读取发送给它的流量。在我把它移到一台新机器上之前,它一直运行得很好。看起来winsock从不接受入站tcp连接。在我的代码中,它从不从select语句返回。我可以使用netstat/tcpview看到应用程序正在侦听端口14005。
如果我只是在本地telnet,我就可以连接到这个端口。但是,当有人尝试通过外部IP地址连接时,TCP 3次握手永远不会结束。我可以在wireshark中看到入站SYN数据包。它将发送到正确的端口14005。但是,我的系统从未发回SYN-ACK。这只是winsock应该处理的事情,对吧?这台机器确实有多个NIC卡,但是我绑定了INADDR_ANY,所以这没什么关系。有没有什么方法可以让我更深入地了解为什么这种握手从不发生?
发布于 2012-03-20 03:46:04
每种更深入挖掘的方法:无非是wireshark / tshark (你已经在使用它了,但是如果你想玩包,可以看看scapy)
如果您减少头痛会发生什么-只使用一个nic和网络,将客户端放在同一网络上(即,没有路由器或智能交换机之间),(最后手段)禁用不需要的网络服务。
https://stackoverflow.com/questions/9776567
复制相似问题