Сокет, кажется, создает проблему во внешней сети - PullRequest
0 голосов
/ 25 апреля 2009

У меня есть служба Windows, которая взаимодействует с сервером и действует как прокси между клиентами и реальным сервером. Данные клиента отправляются на сервер, а данные сервера обратно клиенту. Вышеупомянутые два полностью независимы, поскольку они работают в отдельном потоке.

Ниже приведены шаги: -

  1. Разъем принят слушателем
  2. Поток 1 - получает данные с сервера и отправляет их клиенту
  3. Поток 2 - получает данные от клиента и отправляет их на сервер

Это продолжается непрерывно в течение нескольких часов без проблем в локальной сети (если клиенты и сервер находятся на одном компьютере или в одной локальной сети)

Проблема возникает, когда клиент находится в другой сети. Мой сервер прослушивает сервер Win2003 и имеет публичный IP-адрес. Когда клиент пытается подключиться к этому серверу, используя общедоступный порт IP +, соединение устанавливается, но вскоре оно сбрасывается и генерируется исключение SocketException (10053 - соединение прервано программным обеспечением на этом компьютере). На этом компьютере не работает антивирусный клиент, и брандмауэр Windows отключен.

** Обновлено

Служба работает на клиентском сервере, и я не очень уверен в любом другом брандмауэре. Служба отлично работает на моем сервере Win2003 с клиентами в моей сети, но создает проблемы на другом сервере с клиентами в другой сети.

Ответы [ 2 ]

2 голосов
/ 25 апреля 2009

Первое, что я должен сделать, - запустить WireShark на обеих коробках, чтобы увидеть, что на самом деле происходит.

0 голосов
/ 26 апреля 2009

Проблема была с самой Windows XP SP2. Я пытался подключить клиентов из Windows Server 2003 или Vista, и это работало нормально. Следующая ссылка объясняет проблему: http://support.microsoft.com/kb/938566

Я также пытался обновить до SP3 и применить вышеупомянутое исправление, и оно мне не помогло. Но в любом случае ссылка объясняет проблему с Windows XP, и клиенты работают нормально с Server 2003 и Vista.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...