У меня есть три приложения, которые общаются друг с другом с помощью сокетов. Все они могут жить на своих машинах, но они также могут делиться машиной. Прямо сейчас у меня есть два из них на одном и третьем на его собственной машине. Я пытаюсь сделать свою коммуникацию пуленепробиваемой, поэтому отсоединяю кабели и отключаю приложения, чтобы убедиться, что все работает как положено.
Вот краткий набросок вещи:
Теперь, когда я отсоединяю сетевой кабель от ПК2 (красное соединение «Con B»), внутреннее соединение перестает говорить (синее соединение «Con A»). Я посылаю материал из «Приложения 1» в сокет, который никогда не попадает в «Приложение 2».
Я создал механизм, который обнаруживает это и отключает, а затем снова подключает, и после этого я могу отключить кабель, сколько захочу, и «Con A» просто продолжает работать. Это только в первый раз.
Я подтвердил наличие связи через «Con A» перед отключением «Con B».
Я подключаюсь и подключаюсь точно так же, это тот же код, поэтому нет никакой разницы.
Что происходит?
Дополнительная информация по ответам:
ПК 1 и ПК 2 имеют общие адреса вплоть до последнего байта.
У меня есть внутренний механизм поддержки активности, я отправляю сообщение и жду ответа каждые 10 секунд.
Когда я убиваю приложение 3, этого не происходит, только при отключении кабеля.