2009-04-25 3 views
0

서버와 통신하며 클라이언트와 실제 서버 사이의 프록시 역할을하는 Windows 서비스가 있습니다. 클라이언트 데이터는 서버로 전송되고 서버의 데이터는 클라이언트로 다시 전송됩니다. 위의 두 개는 별도의 스레드에서 실행되므로 완전히 독립적입니다. 다음소켓이 외부 네트워크에서 문제를 일으키는 것 같습니다.

단계는 다음과 같습니다 - 리스너에 의해 허용

  1. 소켓
  2. 스레드 (1) - 서버에서 데이터를 수신하고 클라이언트로 전송
  3. 스레드 (2) - 클라이언트에서 데이터를 수신하고 전송합니다 서버에 연결

로컬 네트워크에서 문제없이 몇 시간 동안 계속됩니다 (클라이언트와 서버가 동일한 컴퓨터 또는 동일한 로컬 네트워크에있는 경우)

클라이언트가 다른 네트워크에있는 경우 문제가 발생합니다. 내 서버가 Win2003 서버에서 수신 대기 중이며 공용 IP가 있습니다. 클라이언트가 공용 IP + 포트를 사용하여이 서버에 연결하려고 시도하면 연결이 이루어 지지만 곧 삭제되고 SocketException (10053 -이 컴퓨터의 소프트웨어에 의해 중단 된 연결)이 발생합니다. 이 컴퓨터에서 실행중인 안티 바이러스 클라이언트가 없으며 Windows 방화벽이 꺼져 있습니다.

이 서비스는 클라이언트 서버에서 실행되고

업데이트와 나는 다른 방화벽에 대해 매우 확실하지 않다 **. 이 서비스는 내 네트워크의 클라이언트와 함께 Win2003 서버에서 제대로 실행되지만 다른 네트워크의 클라이언트와 다른 서버에서 문제가 발생합니다.

+0

두 네트워크 사이에 다른 방화벽이 있습니까? –

답변

0

문제는 Windows XP SP2 자체에서 발생했습니다. Windows Server 2003 또는 Vista에서 클라이언트를 연결하려고 시도했지만 정상적으로 작동했습니다. 다음 링크는 문제를 설명합니다. http://support.microsoft.com/kb/938566

또한 SP3으로 업데이트하려고 시도하고 위의 핫픽스를 적용하면 문제가되지 않습니다. 그러나 어쨌든이 링크는 Windows XP의 문제점을 설명하며 클라이언트는 Server 2003 및 Vista에서 올바르게 작동합니다.

2

내가해야 할 첫 번째 일은 실제로 일어나고있는 것을보기 위해 두 상자에서 WireShark를 실행하는 것입니다.

관련 문제