2015-09-09 5 views
1

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

По какой-то причине мой клиент считает, что он подключен к серверу (TcpListener), а сервер отключен.

Я проверил TcpView (на клиентской машине), и соединение «ESTABLISHED», а на сервере нет соединения.

Это может быть стоит упомянуть, что мой клиент создает 400 ~ TCP соединения с различными серверами

Как я могу справиться с этим на клиентской стороне? некоторая конфигурация на машине? по моему коду?

ответ

1

Когда одна сторона соединения TCP умирает, другая сторона не уведомляется. TCP по умолчанию не выполняет никаких проверок.

Возможно, вы должны изменить протокол своего приложения, чтобы быть устойчивым к мертвым соединениям (таймаутам), и периодически выполнять проверки в реальном времени.

В качестве альтернативы, я думаю, вы можете активировать проверки на наличие соединения.

Все, что нужно сохранить, сокращает продолжительность, необходимую для обнаружения сбоя. Это не гарантирует, что соединение здорово.