tags:

views:

122

answers:

3

I have a Windows Service that communicates with a server and acts as a proxy between clients and the real server. The client data is sent to the server and server's data back to the client. The above two are totally independent as they run on separate thread.

Following are the steps:-

  1. Socket accepted by listener
  2. Thread 1 - Receives data from server and sends it to the client
  3. Thread 2 - Receives data from the client and sends it to the server

This goes on continuously for hours without a problem on the local network( If the clients and server are on the same machine or same local network)

The problem comes when the client is on a different network. My server is listening on a Win2003 server and has a public IP. When the client tries to connect to this server using the public IP + Port, the connection is made but it is soon dropped and a SocketException (10053 - connection aborted by software on this machine) is thrown. There is no anti-virus client running on this machine and windows firewall is off.

**Updated

The service is running on client server and I am not very sure about any other firewall. The service runs fine on my Win2003 server with clients on my network but gives problems on a different server with clients on a different network.

+2  A: 

The first thing I'd do is run WireShark on both boxes to see what's really happening.

cookre
A: 

The problem was with Windows XP SP2 itself. I tried connecting the clients from Windows Server 2003 or Vista and it worked fine. The following link explains the problem: http://support.microsoft.com/kb/938566)

I also tried updating to SP3 and apply the above hotfix and it did not help me. But Anyway the link explains the problem with Windows XP and the clients are working fine from Server 2003 and Vista.

A9S6
A: 

Was any resolution found for XP? I'm having the same problem with XP SP2. Applied the hotfix which appeared to work for a couple of weeks, but now the problem resurfaced. The hotfix file (afd.sys) appears to be the correct version according to the kb article (ie it hasn't oddly reverted to an earlier version).

Doug