|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.02.2019, 01:13 | #1 |
Регистрация: 18.02.2019
Сообщений: 7
|
После обрыва связи и повторного соединения сокет не отвечает на сообщения
Клиент на C# подключается к сокету на некотором аппарате на определенный IP-адрес и порт. Узнать или поменять код на аппарате возможности нет. С целью тестирования вынимаю сетевой кабель из роутера и пытаюсь закрыть сокет с помощью кода:
Код:
Код:
Если не закрывать сокет и не подсоединяться к нему снова при обрыве связи, после того, как подсоединить сетевой кабель, связь снова начинает работать нормально. Если перезагрузить аппарат при работающем приложении клиента, при попытке отправить данные на сокет появляется исключение: Программа на вашем хост-компьютере разорвала установленное подключение После этого сокет не отвечает на запросы. Если затем закрыть сокет, а потом к нему снова подсоединиться, связь начинает работать нормально. То есть в этом случае наоборот надо перезапускать соединение. Сейчас отслеживаю это исключение, при его возникновении перезапускаю соединение, при остальных ошибках не перезапускаю. Если отслеживать только указанное исключение и перезапускать связь только при его возникновении, затем восстанавливается связь при обрыве соединения как со стороны клиента, так и со стороны аппарата. Но, если попытаться отправить данные и после этого выйти из приложения при отсутствии связи, когда вынут сетевой кабель, и запустить приложение снова, сокет не отвечает на запросы. Если после этого перезагрузить компьютер, происходит то же самое. Есть ли способы заставить сокет, не закрытый корректно из-за отсутствия связи, отвечать на запросы? Что еще можно изменить в указанном способе отслеживания ошибок соединения? Необходимо, чтобы связь автоматически восстанавливалась после любой ошибки, включая обрыв связи по сети. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как заново выполнить отладку после повторного запуска? | nikytt | Visual C++ | 4 | 30.08.2015 17:29 |
Сохранение измененных данных в datagridview после повторного запуска mdiChild-окна программы с этим же dgv | zzyika | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 1 | 27.02.2015 04:49 |
Полное заполнение таблицы в общем доступе/, но без права повторного редактирования ячеек после сохранения | Microsoft Office Excel | 3 | 01.10.2011 13:20 | |
Почему на мои сообщения никто не отвечает? | Lyubimov | Свободное общение | 16 | 16.04.2011 22:51 |
Ошибка повторного соединения. | Nemez | Microsoft Office Word | 5 | 24.09.2008 07:31 |