У меня есть служба Windows, которая взаимодействует с сервером и действует как прокси между клиентами и реальным сервером. Данные клиента отправляются на сервер, а данные сервера обратно клиенту. Вышеупомянутые два полностью независимы, поскольку они работают в отдельном потоке.
Ниже приведены шаги: -
- Разъем принят слушателем
- Поток 1 - получает данные с сервера и отправляет их клиенту
- Поток 2 - получает данные от клиента и отправляет их на сервер
Это продолжается непрерывно в течение нескольких часов без проблем в локальной сети (если клиенты и сервер находятся на одном компьютере или в одной локальной сети)
Проблема возникает, когда клиент находится в другой сети. Мой сервер прослушивает сервер Win2003 и имеет публичный IP-адрес. Когда клиент пытается подключиться к этому серверу, используя общедоступный порт IP +, соединение устанавливается, но вскоре оно сбрасывается и генерируется исключение SocketException (10053 - соединение прервано программным обеспечением на этом компьютере). На этом компьютере не работает антивирусный клиент, и брандмауэр Windows отключен.
** Обновлено
Служба работает на клиентском сервере, и я не очень уверен в любом другом брандмауэре. Служба отлично работает на моем сервере Win2003 с клиентами в моей сети, но создает проблемы на другом сервере с клиентами в другой сети.