Сокеты C ++ / .NET. Как переподключиться к серверу, если клиент упал

У меня есть асинхронный сервер сокета TCP и клиент.

Клиент подключается к серверу и отправляет данные по циклу (например).
Сервер получает все хорошо, и все хорошо,
но потом … клиент принудительно закрывается (иначе, могучим диспетчером задач, через конечный процесс мной).

Клиент умирает (очевидно), а сервер выполняет X команд, чтобы правильно закрыть / избавиться от сокета.

Затем я снова открываю client.exe, он пытается автоматически подключиться снова и бум, ошибка: соединение было активно отклонено удаленным хостом.

ВОПРОСЫ:

  1. Какие X-команды (1) мне нужны, чтобы полностью уничтожить сокет на стороне сервера, чтобы клиент мог снова подключиться к серверу?

(1) — я пробовал socket-> Disconnect (true) / close / shutdown, но ничего из этого не работает.

НОТА:

Я пытался изменить окна Keepalive в 5 минут, не имел эффекта.

Я пробовал SocketOptionLevel :: Socket и установил Keepalive к истине. Нет кости.

Я пробовал SocketOptionLevel :: Socket и установил задерживаться до 0. Никаких кубиков.

Я пробовал SocketOptionLevel :: Socket и установил DontLinger к истине. Нет кости.

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

Нет IP-адреса, ни изменения порта для клиента / сервера, и ни мне не нужно их менять по причинам.

Любая помощь будет оценена!

-2

Решение

Нвм, я дебил, я это исправил.
Оказывается, это была ошибка в AcceptClient (асинхронном), где один bool не срабатывал должным образом.

Спасибо за помощь. ^^

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]