Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизОбрыв сетевого подключения. Как? Найти похожие ветки
← →
GanibalLector © (2010-04-27 22:02) [0]Есть у меня промышленный модем. Все как положено, с RS232 интерфейсом. Так вот, подключил я его к ПК, настроил соединение, установил соединение(заимел статический IP). Интернет есть, все работает.
Далее. Я специально (случайно) отключаю антенну от модема. После этого события интернета, естественно, нет. Но!!! Сетевое подключение есть. Т.е. я могу заглянуть в свойства, увидеть количество отправленных и полученных пакетов и т.д. Т.е. повторю еще раз, соединение есть, а самого Интернета нет.
И последнее. Есть мой код, который что-то делает. Так вот, в коде, я получаю IP адреса всех интерфейсов и смотрю, есть ли в этом списке нужный мне IP (который я получил при коннекте через модем). Беда в том, что несмотря на отсутствие антены соединение не разрывается. Т.е. мой код и ОС в целом, считают, что все нормально и соединение есть.
Как быть? Какие будут мысли? Задача – оборвать соединение при отсутствии антенны(или при плохом канале связи).
Заранее спасибо.
← →
Игорь Шевченко © (2010-04-27 22:12) [1]
> Обрыв сетевого подключения. Как?
ну, если поднатужиться...
← →
Суслик__ (2010-04-27 22:32) [2]я думаю периодически что-то пинговать.
← →
Игорь Шевченко © (2010-04-27 22:44) [3]
> Т.е. я могу заглянуть в свойства, увидеть количество отправленных
> и полученных пакетов и т.д. Т.е. повторю еще раз, соединение
> есть, а самого Интернета нет.
Это он в ужасе ищет интернет...
← →
DVM © (2010-04-27 23:33) [4]
> GanibalLector © (27.04.10 22:02)
Какой прок в том, что ты узнаешь, есть у тебя в данный момент соединение с Интернет или нет? Ну узнал ты, щас оно есть, а через мгновение нет. Начни что то делать и сразу узнаешь по кодам ошибок сетевых функций.
← →
GanibalLector © (2010-04-28 01:34) [5]> Начни что то делать и сразу узнаешь по кодам ошибок сетевых функций.
А что я узнаю? Это у меня сервер. Создал поток и жду коннектов. Когда слушающий поток создавался, инет был. Когда инет "потерялся" поток в простое, ждет клиентов.
← →
Суслик_ © (2010-04-28 01:39) [6]я может чего-то не понимаю, но у меня есть ощущение, что гарантированно этого никак не узнаешь средствами система - т.е. не повесишь обработчик OnConnectionLost.
если только не реализовать пинг - либо клиент сервер, либо сервер еще кого-то.
← →
Германн © (2010-04-28 02:15) [7]И ещё раз присоединюсь к Суслик_ ©.
Хотя эта тематика далека от меня. Но что-то подобное было в моей практике. Когда обрыв сетевого кабеля не определялся системой. (Давно это было.)
Применил метод "Эхо". Если в течение какого-то периода времени не было обращений от клиентов серверу, сервер посылал клиенту сообщение "ECHO"", на которое клиент должен был ответить. Если не отвечал, значит связь потеряна.
← →
tesseract © (2010-04-28 10:08) [8]
> что все нормально и соединение есть
Рано или поздно скажет "conneсtion lost". Служебные пакеты - те же UDP в принципе считаются за траффик, даже если и не дойдут до получателя. Надо или пинговать или проверять доступность ресурса.
← →
GanibalLector © (2010-04-28 11:40) [9]2 Суслик_ © (28.04.10 01:39) [6]
>если только не реализовать пинг - либо клиент сервер, либо сервер еще кого-то.
2 Германн © (28.04.10 02:15) [7]
>Применил метод "Эхо". Если в течение какого-то периода времени не было обращений от клиентов серверу, сервер посылал клиенту сообщение "ECHO"", на которое клиент должен был ответить.
Тогда еще усложню. На самом деле у меня не инет, а "мобильная сетка". Т.е. мобильный оператор связи, выдал личный VPN. При установлении соединения IP адрес у меня локальный 10.5.Х.Х. Тоже самое и у "клиентов" моего сервера. Это программируемые модемы, которые только и могут что выйти на мой сервер.
Это к тому, что пинговать мне некого.
Судя по всему, остается только один путь. Засекать время отсутствия коннектов от "клиентов" и есть оно превысило какое-то число, то закрывать сервер и сообщать пользователю.
Ладно, спасибо и на этом. Отсутствие решения, тоже решение.
← →
KSergey © (2010-04-28 11:55) [10]> Германн © (28.04.10 02:15) [7]
> Если в течение какого-то периода времени
> не было обращений от клиентов серверу, сервер посылал клиенту
> сообщение "ECHO"", на которое клиент должен был ответить.
> Если не отвечал, значит связь потеряна.
К стати да, у нас как-то так же и сделано.
Вот только беда: а если ни один клиент не подконнекчен в текущий момент? Все же плохая связь на сервере - какой-то нонсенс.
← →
KSergey © (2010-04-28 11:56) [11]Надо в этой сетке завести еще один-два сервера, и пусть они обмениваются пакетами "на досуге".
← →
Anatoly Podgoretsky © (2010-04-28 12:08) [12]> GanibalLector (28.04.2010 11:40:09) [9]
Для связи по VPN используются два адреса, клиента и сервера, так что пинговать есть кого, кроме того можно пинговать любой компьютер в сети, если только не предприняты противодействующие меры.
← →
DVM © (2010-04-28 12:20) [13]
> GanibalLector © (28.04.10 01:34) [5]
> > Начни что то делать и сразу узнаешь по кодам ошибок сетевых
> функций.
>
> А что я узнаю? Это у меня сервер.
Я ж говорю, начни что-то делать. Пингуй наконец что нибудь.
← →
Anatoly Podgoretsky © (2010-04-28 13:00) [14]
> А что я узнаю? Это у меня сервер. Создал поток и жду коннектов.
> Когда слушающий поток создавался, инет был. Когда инет
> "потерялся" поток в простое, ждет клиентов.
Ну и пусть себе ждет, не дело сервера заботиться о клиентах, соединения устанавливают клиенты, а не сервер. Сервер может только разорвать соединение, по отсутствию активности.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.072 c