Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1273868996
Юрий
2010-05-15 00:29
2010.08.27
С днем рождения ! 15 мая 2010 суббота


11-1195764794
tigra
2007-11-22 23:53
2010.08.27
kol-synapse


15-1267459908
PEAKTOP
2010-03-01 19:11
2010.08.27
Первая Украинская конференция по Firebird


2-1273299415
Mikkle
2010-05-08 10:16
2010.08.27
Чтение данных из XML


15-1267133405
Юрий
2010-02-26 00:30
2010.08.27
С днем рождения ! 26 февраля 2010 пятница





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский