Ярославль


  Ответ в темуСоздание новой темыСоздание опроса

задачка по TCP/IP, куплю код,утилитку или идейку

Опиум
Дата 13.02.2008 - 14:53
Цитировать сообщение




86₽/$
********

Профиль
Группа: Пользователи
Сообщений: 102869
Пользователь №: 7415
Регистрация: 8.04.2006 - 14:37





нужна утилитка (консольная w32) которая разрывает указанное ей tcp соединение.
Исполняца будет при определенных условиях на win сервере.

в самом простом случае аргументом вобщем будет единственное число - локальный порт tcp, по которому данный сервер слушает.
Утилита должна только (желательно корректно) оборвать текущии сессии с этим портом и завершица. Т.е. не мешает созданию затем новых сессий.

Кто что скажет?
идеально-нужен код дельфи... для дальнейшего встраивания.
PM
Top
ASudakov
Дата 13.02.2008 - 16:51
Цитировать сообщение




Unregistered












Top
Опиум
Дата 13.02.2008 - 21:57
Цитировать сообщение




86₽/$
********

Профиль
Группа: Пользователи
Сообщений: 102869
Пользователь №: 7415
Регистрация: 8.04.2006 - 14:37





да... похоже... надо пробовать.

обычно у таких прог не радует не цена, а невозможность по простому оплатить.
PM
Top
ASudakov
Дата 13.02.2008 - 22:01
Цитировать сообщение




Unregistered












а откуда такая задача возникла, если не секрет?
появилась пара программных идей, но хотелось бы понять - стоит ли оно обдумывания.
Top
Опиум
Дата 13.02.2008 - 23:05
Цитировать сообщение




86₽/$
********

Профиль
Группа: Пользователи
Сообщений: 102869
Пользователь №: 7415
Регистрация: 8.04.2006 - 14:37





задача родилась в процессе эксплуатации некоторых tcp-сервисов, которые не имеют самостоятельных средств прекращать сессии. Сессии завершаюца только по желанию(инициативе) клиента.

Кончено можно сбрасывать все сессии батником
net stop service
net start service
но хотелось бы более тонкий вариант.
PM
Top
ASudakov
Дата 14.02.2008 - 10:32
Цитировать сообщение




Unregistered












еще пару программ накопал - вторая вроде более симпатична.

http://members.fortunecity.com/sektorsecur.../tcpkillnt.html
http://www.nirsoft.net/utils/cports.html

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

p.s. еще подумав - для первого варианта можно обойтись без прослушки - использовать IPHlpApi
Top
Опиум
Дата 14.02.2008 - 12:32
Цитировать сообщение




86₽/$
********

Профиль
Группа: Пользователи
Сообщений: 102869
Пользователь №: 7415
Регистрация: 8.04.2006 - 14:37





Цитата (ASudakov @ 14.02.2008 - 11:32)
еще пару программ накопал - вторая вроде более симпатична.

да... свиду.. только на w2000sp4 ничего не показывает
PM
Top
ASudakov
Дата 14.02.2008 - 13:09
Цитировать сообщение




Unregistered












Цитата (Опиум @ 14.02.2008 - 12:32)
Цитата (ASudakov @ 14.02.2008 - 11:32)
еще пару программ накопал - вторая вроде более симпатична.

да... свиду.. только на w2000sp4 ничего не показывает

у меня на такой конфигурации все показывает.
нет прав админа?
Top
vo1d
Дата 14.02.2008 - 15:39
Цитировать сообщение




Unregistered












Цитата (Опиум @ 13.02.2008 - 14:53)
идеально-нужен код дельфи... для дальнейшего встраивания.

На дельфи уже сто лет не писал, но винсок везде одинаковый, думаю, вот это тебе поможет: http://citforum.univ.kiev.ua/book/cook/winsock.shtml
Там всё разжёвано и переварено уже... в твоём случае тебе только надо будет раздобыть и зарегистрировать в проекте winsock.dll (или winsock2.dll), инициализировать через WSAStartup и вызвать что-нить типа closesocket() или shutdown()...

Если нужна готовая утилита, то вот эта подойдёт: http://soft.softodrom.ru/ap/p2749.shtml

PS: Ну и ещё ты можешь себе на порт отправить TCP-пакет с флагом RST...
Top
ASudakov
Дата 14.02.2008 - 16:42
Цитировать сообщение




Unregistered












vo1d
1) просто прибиндиться к сокету и закрыть его shutdown-ом не получится.
2) TCPView не работает в командном режиме. вот если найти ее исходники (а Руссинович раньше их выкладывал), то переделать под свои нужды можно
3)
Цитата
Ну и ещё ты можешь себе на порт отправить TCP-пакет с флагом RST.

примерно про это я и писал 14.02.2008 - 10:32, только разрыв неплохо бы слать в обе стороны.
Top
Опиум
Дата 15.02.2008 - 09:17
Цитировать сообщение




86₽/$
********

Профиль
Группа: Пользователи
Сообщений: 102869
Пользователь №: 7415
Регистрация: 8.04.2006 - 14:37





Цитата (ASudakov @ 14.02.2008 - 17:42)
2) TCPView не работает в командном режиме. вот если найти ее исходники (а Руссинович раньше их выкладывал), то переделать под свои нужды можно

да.. было дело..только я их (исходники) не скачивал sad.gif

Цитата
Ну и ещё ты можешь себе на порт отправить TCP-пакет с флагом RST.
примерно про это я и писал 14.02.2008 - 10:32, только разрыв неплохо бы слать в обе стороны.


о. интересно, никакой номерок sequence соблюдать не надо? Асинхронно послать?
PM
Top
ASudakov
Дата 15.02.2008 - 09:49
Цитировать сообщение




Unregistered












Цитата
о. интересно, никакой номерок sequence соблюдать не надо? Асинхронно послать?

ну наверное надо. и какая разница - синхронно или асинхронно?

см. исходники здесь
http://www.codeguru.com/cpp/i-n/network/tc....php/c14077__1/

Top

Опции темы Ответ в темуСоздание новой темыСоздание опроса

 



[ Время генерации скрипта: 0.0069 ]   [ Использовано запросов: 12 ]   [ GZIP включён ]



Яндекс.Метрика

Правила Ярпортала (включая политику обработки персональных данных)

Все вопросы: yaroslavl@bk.ru