2012-02-22 245 views
1

我有两个通过TCP通讯的应用程序,它们都在Windows XP机器上运行。客户端是第三方应用程序,我只有可执行文件,没有源代码。它连接的服务器的IP地址在文本配置文件中设置。服务器是我正在写的一个应用程序。TCP连接失败

所有的网络掩码都是255.255.255.0。

在所有情况下,客户端在192.168.142.202上运行。

我看到一种情况,如果我在192.168.142.207上运行我的服务器,一切正常,但如果我将服务器移动到同一子网(192.168.142.105)上的另一台计算机上,一切都无法正常工作。具体来说,连接似乎没有得到适当的建立。我已经查看了Wireshark中发生了什么,并希望能够帮助我解决所看到的问题。

在服务器端,我看到三次握手:SYN,SYN/ACK,ACK。 accept()返回时没有错误代码,并且netstat显示已建立的连接。

在客户端,连接似乎没有正确建立。这会导致客户端周期性地重新连接,并且偶尔会关闭所有作为结果创建的未正确连接的套接字。当我在Wireshark中查看客户端时,我经常看到SYN,SYN,SYN模式,而不是预期的3次握手。有时偶尔会出现三次握手,但即使如此,客户似乎也不会对连接感到满意,因为它关闭了连接。

我会注意到,客户端和服务器之间实际上有两个TCP连接。另一个连接(即不是我上面描述的有问题的连接)工作得很好。有问题的连接具有监听端口5004;良好的连接已经侦听端口1234

我已经放置在两个.txt和客户端的版本.pcap和服务器的Wireshark捕获在此链接:https://skydrive.live.com/redir.aspx?cid=c5beaf58ac752bb0&resid=C5BEAF58AC752BB0!105&parid=root

至于物理网络设置得好,有一个在工作情况下在客户端和服务器之间切换,并且在不起作用的情况下客户端和服务器之间有两个交换机。所有的ping测试都成功了。没有涉及无线连接;一切都是有线的。

所有防火墙都关闭。

有没有人对这个问题有什么想法或者我可以通过哪些进一步的数据来解决问题?

回答

0

好吧,看起来这根本不是网络或网络编程问题。我已经通过反复试验发现,连接到我的第三方软件希望它运行的计算机的IP地址比运行我的软件的计算机的IP地址要小。这对我来说似乎是完全武断的,但从经验上看,这种情况非常强烈。 Arghhhh ............

感谢任何人和所有谁花时间了解我提供的Wiresharks转储...