Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.01.01;
Скачать: CL | DM;

Вниз

Заброшенные сокеты   Найти похожие ветки 

 
Евгений07   (2011-09-16 16:47) [0]

Доброго времени!
Встал такой вопрос: что делать с брошенными клиентом сокетами?
Пример
Сторонняя прога запускает мою ДЛЛ
Клиентский сокет подключается к моему серверу

Сторонняя прога вырубает мою ДЛЛ. Без объявления
Сервером не могу вырубить сокет клиента

Сторонняя прога опять запускает мою ДЛЛ
Клиентский сокет хочет подключиться к моему серверу


 
DiamondShark ©   (2011-09-16 19:20) [1]

Если русский язык для вас родной, то стоит подумать о визите к психиатру, поскольку подобная речь -- очень тревожный симптом.


 
Rouse_ ©   (2011-09-16 19:25) [2]


> Сторонняя прога вырубает мою ДЛЛ. Без объявления
> Сервером не могу вырубить сокет клиента

должно пройти уведомление о разрыве сессии (ну тут смотря какая модель транспорта используется, но в итоге все равно уведомление есть).
В любом случае при повторном соединении проблем быть не должно, или неверно описан механизм.


 
Евгений07   (2011-09-16 20:25) [3]

DiamondShark ©   (16.09.11 19:20) [1]

Если русский язык для вас родной


Сторонняя прога запускает мою ДЛЛ
Клиентский сокет подключается к серверу

Сторонняя прога вырубает мою ДЛЛ.
Сервер не вырубает клиента

Сторонняя прога опять запускает мою ДЛЛ
Клиентский же сокет тащится к серверу

Да я же поэт сокетов!


 
Sha ©   (2011-09-16 20:42) [4]

Кто понял, причем тут сторонняя прога и его ДЛЛ?


 
Rouse_ ©   (2011-09-16 21:06) [5]

Ну судя по всему клиент находится в библиотеке...


 
Sha ©   (2011-09-16 21:09) [6]

Ну как придет, пусть расскажет:
1 Какие операции с сокетами выполняет программа, какие - DLL?
2 Срубает DLL - что это значит?
3 Что сохранилось в контексте? Что утекло? Какие операции повисли?
4 Снова запускает - что это значит?
5 Контекст очищен? Все снова - здорово?


 
Евгений07   (2011-09-16 21:50) [7]


> Rouse_ ©   (16.09.11 19:25) [2


С клиентом могут быть ситуации:
1. Вырублена прога с длл клиентом
2. Вырублена длл, сокет жив
   включена длл повторно

Ситуация с сервером:  перезапущен слушающий сокет
1. включен клиент = все нормально
2. включена прога с вырубленной длл, сокет жив

У моего сервера 1 клиент


 
Rouse_ ©   (2011-09-16 22:22) [8]


> 2. Вырублена длл, сокет жив

С клиентской или серверной стороны?


 
Евгений07   (2011-09-16 22:51) [9]

С клиентской  стороны?


 
Евгений07   (2011-09-16 22:52) [10]

Rouse_ ©   (16.09.11 22:22) [8]
Сокет с жив клиентской  стороны


 
Евгений07   (2011-09-16 23:11) [11]

Rouse_ ©   (16.09.11 22:22) [8]
Прошу прощения


> Евгений07   (16.09.11 22:52) [10]
>
> Rouse_ ©   (16.09.11 22:22) [8]
> Сокет с жив клиентской  стороны

Не правильный ответ

Вырубается длл с клиентом
На сервере остается сокет с соединением
На перезапуск сокета отвечает 10038 ошибкой
Убирается перезагрузкой серверной проги


 
sniknik ©   (2011-09-16 23:18) [12]

> Не правильный ответ
это экзамен?

> На перезапуск сокета отвечает 10038 ошибкой
???
это не "сокет занят" из-за того что "срублен", это "сокетная операция на "не сокете"", т.е. обьект/значение в переменной содержащей указатель на обьект перестало быть сокетом...
короче, кривой код не обрабатывает ошибки, а засоряет переменные "мусором".


 
DVM ©   (2011-09-16 23:26) [13]

Вырублена  длл - это что такое?


 
Sha ©   (2011-09-16 23:42) [14]

Ну ясно же, это когда ее срубили, а снова не запустили.


 
DVM ©   (2011-09-17 00:03) [15]


> Sha ©   (16.09.11 23:42) [14]

Тогда возникает другой вопрос, что такое срубили? :)

"Заброшенные сокеты" - хорошее название для книги или фильма.


 
Sha ©   (2011-09-17 00:09) [16]

Мне тоже так подумалось.
В тексте еще встречаются живые сокеты, которых бросил клиент. Почему-то хочется их обогреть и накормить.


 
Игорь Шевченко ©   (2011-09-17 00:13) [17]

Sha ©   (17.09.11 00:09) [16]

А автору хочется их прибить, чтобы не мучились


 
Евгений07   (2011-09-17 00:24) [18]

Немного отхлебнул из "Программирование в сетях виндовс", подумал.

Получается, что когда вырубают мою длл, то отключают все ссылки на сокет клиента. Но сокет жив! У него просто грохнули хозяина
Надо посмотреть, может ли сокет сервера отдать команду секету клиента закройся напрямую, без хозяина,
А новая длл к старому сокету доступа не имеет и иметь не может. Соответственно пытается завести нового


 
Sha ©   (2011-09-17 00:28) [19]

клиента или хозяина?


 
Евгений07   (2011-09-17 00:28) [20]

Спать.
Убить сокет.
Пусть мне приснится киллер сокета


 
Sha ©   (2011-09-17 00:48) [21]

Общество защиты сокетов рекомендует выгуливать их в ошейниках.
Ошейник позволит отличить домашний сокет от дикого,
а номерок на ошейнике - определить его хозяина.


 
Германн ©   (2011-09-17 00:54) [22]


> короче, кривой код не обрабатывает ошибки, а засоряет переменные
> "мусором".

+1
А сокеты "убить" - это нужно очень постараться!


 
DiamondShark ©   (2011-09-17 00:54) [23]


> "Заброшенные сокеты" - хорошее название для книги или фильма.

Lost Socks
(в переводе студии "Полный П")


 
Inovet ©   (2011-09-17 09:52) [24]

> [18] Евгений07   (17.09.11 00:24)
> Немного отхлебнул из "Программирование в сетях виндовс", подумал.

Ты точно из того источника отхлебнул? Может поэзия сокетов от другого попёрла.


 
sniknik ©   (2011-09-17 10:21) [25]

> Но сокет жив!
ну прямо живее всех живых... если объект закрыт/освобожден, ссылка на него сразу становится "мусором", неважно что в ней еще есть указатель и по нему видны данные... сам объект уже не жив, и это даже не зомби, это труп.

> Немного отхлебнул из "Программирование в сетях виндовс", подумал.
не о там наверное... надо об основах думать в твоем случае. (ИМХО)


 
Евгений07   (2011-09-20 01:38) [26]

Сокет взят.
Последняя капля его крови:
WSAGetLastError = 6
Пол дня рыл в инете. Нету халявы. Нету
Оказалось, в WinSock2 6 = WSA_INVALID_HANDLE
Там есть еще несколько кодов меньше WSABASEERR


 
Inovet ©   (2011-09-20 09:10) [27]

> [26] Евгений07   (20.09.11 01:38)
> Пол дня рыл в инете. Нету халявы. Нету

С такими вопросами как сдесь и не удивительно.


 
sniknik ©   (2011-09-20 09:31) [28]

сразу после значимой информации (код ошибки) тебе сказали, что в переменной мусор... т.е. бесплатное консультирование вместо платного ЦТО. что это как не халява?
нежелание понимать ответы это твоя проблема. и вот теперь "вах. все дело в хендле инвалид, а вы мужики то, в инете, и не знали". повторил другими словами, что в переменной мусор, и это типа решение... LOL


 
Евгений07   (2011-09-20 11:37) [29]


> sniknik ©   (20.09.11 09:31) [28]

хендле инвалид вылез, когда я изменил сокет, найдя в чужой проге способ правильно завершить работу связи со стороны клиента.

А если бы не смог?
В процессе работы нить клиента с ДЛЛ может отключатся и подключатся сама
При отключении нити с ДЛЛ грохаются переменные, связанные с сокетами, а сокеты остаются,
Можно конечно было на новое подключение создавать новый сокет, а что было делать со старыми?
И сколько их было бы?

Первый вопрос остался:

как можно со стороны сервера убрать сокеты, к которым со стороны клиента  нет переменных.
Требования к ДЛЛ специфичны


 
Сергей М. ©   (2011-09-20 11:58) [30]

> нить клиента с ДЛЛ может отключатся и подключатся сама

Это как ?)


 
Евгений07   (2011-09-20 12:03) [31]

как можно со стороны сервера убрать сокеты клиента, к которым со стороны клиента  утрачены ссылки.
Так правильно


> sniknik ©   (20.09.11 09:31) [28]


В правильном ответе на нужно интерпретированный отвечающим вопрос тоже есть польза, но для задающего лучший ответ на его вопрос, пусть и не не точно сформулированный.


 
Сергей М. ©   (2011-09-20 12:08) [32]


> как можно со стороны сервера убрать сокеты клиента, к которым
> со стороны клиента  утрачены ссылки


Да никак)


 
sniknik ©   (2011-09-20 13:02) [33]

> как можно со стороны сервера убрать сокеты клиента, к которым со стороны клиента  утрачены ссылки.
а как можно со стороны ... ну скажем бывшей "любовницы" убрать запись (указатель на) о себе из записных книжек бывших "любовников"?

или скажем со стороны квартиры из листка (указателя) приезжающей тещи?

... и т.д.

указатель на что-то не может быть разрушен со стороны объекта, чтобы с этим самым объектом не случилось... (правило, исключения могут быть, но... )


 
sniknik ©   (2011-09-20 13:06) [34]

>> нить клиента с ДЛЛ может отключатся и подключатся сама
> Это как ?)
крибле-крабле-бумс...
так примерно. ;)


 
Сергей М. ©   (2011-09-20 13:09) [35]


> крибле-крабле-бумс...
> так примерно


))
Похоже на то, судя по описанию)


 
Евгений07   (2011-09-20 19:01) [36]

Нить моего клиента управляется сторонней прогой, по своей логике


 
Евгений07   (2011-09-20 19:07) [37]


> Сергей М. ©   (20.09.11 12:08) [32]
> Да никак)

И это похоже на чистую голую истину.
Никакой надежды слесарю гинекологу с процессором


 
sniknik ©   (2011-09-20 19:28) [38]

> Нить моего клиента управляется сторонней прогой, по своей логике
и что?

> Никакой надежды слесарю гинекологу с процессором
ну почему же? есть "запасная" надежда для всех, на нанятого программиста...


 
sniknik ©   (2011-09-20 19:40) [39]

> и что?
в смысле. - чем это мешает исправить ошибки в твоем коде?


 
Евгений07   (2011-09-20 21:45) [40]

Ошибки исправил.
Сделал как положено клиенту = closeSocet
Но перехватить смог не все ситуации завершения нити с ДЛЛ
Если припрет, буду думать
Пока все работает


 
sniknik ©   (2011-09-20 22:25) [41]

> Но перехватить смог не все ситуации завершения нити с ДЛЛ
сколько осталось, из одной возможно ситуации ??!!

> Пока все работает
чудо, не иначе.


 
sniknik ©   (2011-09-20 22:26) [42]

> возможно
возможной


 
Германн ©   (2011-09-21 00:49) [43]


> сколько осталось, из одной возможной ситуации ??!!

+1


 
Сергей М. ©   (2011-09-21 10:30) [44]


> Нить моего клиента управляется сторонней прогой, по своей
> логике


Интересно, и что это за логика ?


 
Евгений07   (2011-09-21 10:44) [45]

1 Для меня есть явно разрешенные, документированные вещи
2 Есть неявно разрешенные, недокументированные вещи
3 Есть неявно запрещенные


 
sniknik ©   (2011-09-21 11:22) [46]

прямо теряюсь, что сказать...
- вы блондин?
- спасибо я уже пообедал!
и думай что хочешь.

может автору нужен не сайт программистов, а... скажем психиатров? ну чтобы уму мышление "подточили" под программистское.


 
Сергей М. ©   (2011-09-21 12:16) [47]

Мдя ..
Тяжелый случай ..


 
Евгений07   (2011-09-21 13:33) [48]

У меня сейчас все что надо = работает
Тест пашет 3-и сутки без моих проблем
Появились другие

Почему у Уважаемых Мастеров (без кавычек)
Мдя ..
Тяжелый случай ..

не пойму

Спасибо всем Уважаемым Мастерам, которые помогли мне на страницах инета (не только этой) разобраться с сокетами.
Многие годами пашут эту тему.
Некоторым = мне разовая проблема.
Разобрался, решил, пошел дальше.
Работает.

Спасибо!


 
Inovet ©   (2011-09-21 13:37) [49]

> [48] Евгений07   (21.09.11 13:33)
> Тест пашет 3-и сутки без моих проблем
> Появились другие

Чужие т.е.. Зачем тебе чужие.


 
Sha ©   (2011-09-21 13:42) [50]

Евгений07   (21.09.11 13:33) [48]

У тех, кто давно и много программирует, мышление более систематическое, что ли.
Не торопись жить, и думать станет проще.


 
Сергей М. ©   (2011-09-21 13:43) [51]


> Почему .. Тяжелый случай .. не пойму


Потому что вместо ответа на вопрос про логику управления твоей нитью НЕ твоей программой ты понес какую-то ахинею из 3-х пунктов)


 
sniknik ©   (2011-09-21 14:50) [52]

> ... мне разовая проблема.
> Разобрался, решил, пошел дальше.
> Работает.
ошибаешься. тут у тебя проблема не в сокетах, а в логике программирования/мышления, + в понимании потоков. ну..., складывается такое впечатление.
т.е. сейчас ты решаешь/решил задачу с сокетами, завтра будешь с отображаемыми на память файлами в потоке например и упрешься в тоже самое...  но даже не поймешь, будешь всем говорить что опять "разовая" проблема с файлами.



Страницы: 1 2 вся ветка

Текущий архив: 2012.01.01;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.01 c
2-1316719186
dreamse
2011-09-22 23:19
2012.01.01
Сохранение списка без символов перевода каретки


3-1269448285
учителка
2010-03-24 19:31
2012.01.01
удаление записи из записи


2-1317089272
я
2011-09-27 06:07
2012.01.01
Имитация нажатия клавиш


15-1316145972
vajo
2011-09-16 08:06
2012.01.01
Win XP. Проблема входа в систему.


15-1315941054
Медвежонок Пятачок
2011-09-13 23:10
2012.01.01
кургинян о 911 как бы совсем без конспирологии