Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Hook на сокет


Автор: <Spawn> 26.3.2003, 01:51
Существует ли такая возможность?? Если да, то подскажите, пожалуйста, как её реализовать или где начать искать.

Автор: <Spawn> 26.3.2003, 03:06
Или может существуют какие-нибудь функции для чтения\посылки данных на уже забинденный сокет?Покрайней мере такого в idWinSock2 я не нашел. Даже для функций RecvFrom и SendTo необходимо осуществлять bind, что приводит к ошибке, так как сокет уже используется((

Автор: Dayana 26.3.2003, 19:30
<Spawn>, насколько я поняла, тебе надо что-то, что работает как сниффер?
Если да то http://forum.vingrad.ru/index.php?act=ST&f=2&t=6256&hl=Сокет можешь посмотреть обсуждения похожего вопроса с примерами...

Автор: Step 26.3.2003, 19:42
Dayana это ЮДП врядли для TCP так можно

Автор: man2002ua 26.3.2003, 19:53
Цитата
Dayana это ЮДП врядли для TCP так можно

Можно, если выставить опцию сокета - SO_REUSEADDR, тогда можно подключаться к уже используемому адресу:порту.
Правда возникает опасность - что приложение использующее этот адрес первым может потерять соединение и попытаться восстановить его. А без REUSEADDR у него это не получится - занят вашим сниффером.

Автор: Step 26.3.2003, 20:03
Цитата
Можно, если выставить опцию сокета - SO_REUSEADDR, тогда можно подключаться к уже используемому адресу:порту.
поподробнее можно

Автор: man2002ua 26.3.2003, 20:13
Step, смотри faq © Step

шутка smile.gif

см. в любом хелпе ф-ю " setsockopt " - и один из флагов SO_REUSEADDR.
там еще много полезного, сам использовал.

Автор: <Spawn> 26.3.2003, 20:25
Цитата(man2002ua @ 26.3.2003, 12:13)
Step, смотри faq © Step

шутка smile.gif

см. в любом хелпе ф-ю " setsockopt " - и один из флагов SO_REUSEADDR.
там еще много полезного, сам использовал.

Ну это понятно), но дело в том, что эту опцию должно устанавливать приложение создающее сокет, а в моем случае я не управляю созданием этого сокета.

Автор: man2002ua 26.3.2003, 20:29
Нет. Приложение А создало и открыло и про_Bind_ило сокет. Твое приложение В - инициализирует сокет, и перед тем как при_Bind_ить его к уже используемому адресу:порту - вызывает setsockopt с флагом REUSE, к-й говорит, что можно подключиться к используемому сокету.

Автор: <Spawn> 26.3.2003, 20:35
Цитата(man2002ua @ 26.3.2003, 12:29)
Нет. Приложение А создало и открыло и про_Bind_ило сокет. Твое приложение В - инициализирует сокет, и перед тем как при_Bind_ить его к уже используемому адресу:порту - вызывает setsockopt с флагом REUSE, к-й говорит, что можно подключиться к используемому сокету.

Хм) Значит ето я ошибку где то сделал, когда пытался вызвать эту функцию. Надо буде попробовать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)