Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Заброшенные сокеты


Страницы:   1 2 3

Евгений07 ©   (2011-09-16 16:47:00) 

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

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

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


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


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


Да никак)


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

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


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


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


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

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

Это как ?)


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


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

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

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

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

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


sniknik   (2011-09-20 09:31:00) [25]

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


Inovet   (2011-09-20 09:10:00) [26]

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

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


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

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


sniknik   (2011-09-17 10:21:00) [28]

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

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


Inovet   (2011-09-17 09:52:00) [29]

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

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


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


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

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


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


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

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


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

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


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

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


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

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


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

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

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


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

Sha ©   (17.09.11 00:09) [16]

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


Sha   (2011-09-17 00:09:00) [37]

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


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


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

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

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


Sha   (2011-09-16 23:42:00) [39]

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


DVM   (2011-09-16 23:26:00) [40]

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


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо