.NET Sockets - Дядя Билли опять облажался.......
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
.NET Sockets - Дядя Билли опять облажался....... - 2006-12-03 17:33:13.810000
|
|
|
AzazelMazikin
Сообщений: 137
Оценки: 0
Присоединился: 2006-12-03 17:16:04.420000
|
Как определить в .NET что удаленный хост отвалился? Есть хоть один надежный способ? Свойство Connected не работает по определению, аж в МСДНе написано что на него полагатся нельзя потому что возвращает значение которое было в момент последней операции…. Делаю и Poll и Read перед этим, не помогает…. Ишо в буржуйских доках намек на то что хост должен отключится по всем правилам, знать бы что оно значит (gracefully). Но по спецификации моего приложения должны учитываться и такие зверские ситуевины как выдергивание кабеля. Проверку на отсылку данных или пинг удаленного хоста не предлагать - отсылать что то лишнее нельзя а пинг может попросту отсекатся Проверено на обоих версиях .NET - один хрен….
|
|
|
RE: .NET Sockets - Дядя Билли опять облажался....... - 2006-12-03 18:41:54.920000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
в tcp/ip не заложены механизмы мониторинга состояния соединения. так что… надо делать это на верхних уровнях. в протоколе irc, например, заложена команда PING, специально для того, чтобы и сервак и клиент могли бы посмотреть умерло соединение или нет. так что билл здесь не причём.
|
|
|
RE: .NET Sockets - Дядя Билли опять облажался....... - 2006-12-03 19:01:07.970000
|
|
|
AzazelMazikin
Сообщений: 137
Оценки: 0
Присоединился: 2006-12-03 17:16:04.420000
|
Вообщето если соединение умерло то через пару секунд netstat вместо надписи ESTABILISHED выдает какую нить другую…. А в Дельфи вообще есть событие OnDisconnect у сокета, тоже не работает, но может я что то не то делаю, за VCL давно не садился….
|
|
|
RE: .NET Sockets - Дядя Билли опять облажался....... - 2006-12-03 19:12:23.860000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: AzazelMazikin Вообщето если соединение умерло то через пару секунд netstat вместо надписи ESTABILISHED выдает какую нить другую…. это когда его закрывать начали, и не закончили. ну, linux'вый netstat по крайней мере так делает. а вообще, если очень хочется, то можно спуститься уровнем ниже – под ip: выяснить через какой интерфейс сокет гоняет пакеты, и отслеживать состояние интерфейса. но тут ты, возможно, умучаешься там ведь может быть ppp, eth и пр, всякие там соединения через com, usb…
|
|
|
|
|