套接字似乎给外部网络带来了问题

时间:2009-04-25 02:34:57

标签: .net sockets

我有一个与服务器通信的Windows服务,并充当客户端和真实服务器之间的代理。客户端数据被发送到服务器并将服务器的数据发送回客户端。以上两个完全独立,因为它们在不同的线程上运行。

以下是步骤: -

  1. 听众接受的插座
  2. 线程1 - 从服务器接收数据并将其发送到客户端
  3. 线程2 - 从客户端接收数据并将其发送到服务器
  4. 在本地网络上持续数小时没有问题(如果客户端和服务器位于同一台计算机或同一本地网络上)

    当客户端位于不同的网络上时,问题就出现了。我的服务器正在Win2003服务器上侦听并具有公共IP。当客户端尝试使用公共IP +端口连接到此服务器时,会建立连接,但很快就会被丢弃并抛出SocketException(10053 - 连接由此计算机上的软件中止)。此计算机上没有运行防病毒客户端,Windows防火墙已关闭。

    **更新

    该服务正在客户端服务器上运行,我不确定任何其他防火墙。该服务在我的Win2003服务器上运行良好,我的网络上有客户端,但在不同网络上的客户端的其他服务器上出现问题。

2 个答案:

答案 0 :(得分:2)

我要做的第一件事是在两个盒子上运行WireShark,看看究竟发生了什么。

答案 1 :(得分:0)

问题出在Windows XP SP2本身。我尝试从Windows Server 2003或Vista连接客户端,它工作正常。以下链接说明了问题:http://support.microsoft.com/kb/938566

我也尝试更新到SP3并应用上面的修补程序,它没有帮助我。但无论如何,该链接解释了Windows XP的问题,客户端在Server 2003和Vista中运行良好。