2009-04-25 3 views
0

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

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

  1. Оправа принят слушателем
  2. Thread 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, и клиенты отлично работают с серверами 2003 и Vista.

2

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

Смежные вопросы