![]() |
Ярпортал: форум Ярославля ![]() |
![]() ![]() ![]() ![]() |
Здравствуйте, Гость ( Вход·Регистрация ) | Сделать Yarportal.Ru стартовой страницей |
![]() |
![]() ![]() ![]() |
Опиум |
Дата 13.02.2008 - 14:53
|
![]() 86₽/$ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 102869 Пользователь №: 7415 Регистрация: 8.04.2006 - 14:37 ![]() |
нужна утилитка (консольная w32) которая разрывает указанное ей tcp соединение.
Исполняца будет при определенных условиях на win сервере. в самом простом случае аргументом вобщем будет единственное число - локальный порт tcp, по которому данный сервер слушает. Утилита должна только (желательно корректно) оборвать текущии сессии с этим портом и завершица. Т.е. не мешает созданию затем новых сессий. Кто что скажет? идеально-нужен код дельфи... для дальнейшего встраивания. |
ASudakov |
Дата 13.02.2008 - 16:51
|
Unregistered ![]() |
подойдет? |
|
Опиум |
Дата 13.02.2008 - 21:57
|
![]() 86₽/$ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 102869 Пользователь №: 7415 Регистрация: 8.04.2006 - 14:37 ![]() |
да... похоже... надо пробовать.
обычно у таких прог не радует не цена, а невозможность по простому оплатить. |
ASudakov |
Дата 13.02.2008 - 22:01
|
Unregistered ![]() |
а откуда такая задача возникла, если не секрет?
появилась пара программных идей, но хотелось бы понять - стоит ли оно обдумывания. |
|
Опиум |
Дата 13.02.2008 - 23:05
|
![]() 86₽/$ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 102869 Пользователь №: 7415 Регистрация: 8.04.2006 - 14:37 ![]() |
задача родилась в процессе эксплуатации некоторых tcp-сервисов, которые не имеют самостоятельных средств прекращать сессии. Сессии завершаюца только по желанию(инициативе) клиента.
Кончено можно сбрасывать все сессии батником net stop service net start service но хотелось бы более тонкий вариант. |
ASudakov |
Дата 14.02.2008 - 10:32
|
Unregistered ![]() |
еще пару программ накопал - вторая вроде более симпатична.
а для самостоятельной программы с более тонкой работой (например разрыв только через определенное время) в голову приходят 2 подхода 1) прибиндиться к слушающему сокету, делать прослушку пакетов, определяя адрес клиента, по некоторым условиям посылать разрыв соединения в обе стороны. 2) сделать прокси c функцией отключения клиентов по таймауту. вполне возможно, что такие программы существуют, но и исходники прокси на дельфях найти несложно. p.s. еще подумав - для первого варианта можно обойтись без прослушки - использовать IPHlpApi |
|
Опиум |
Дата 14.02.2008 - 12:32
|
||
![]() 86₽/$ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 102869 Пользователь №: 7415 Регистрация: 8.04.2006 - 14:37 ![]() |
да... свиду.. только на w2000sp4 ничего не показывает |
||
ASudakov |
Дата 14.02.2008 - 13:09
|
||||
Unregistered ![]() |
у меня на такой конфигурации все показывает. нет прав админа? |
||||
|
vo1d |
Дата 14.02.2008 - 15:39
|
||
Unregistered ![]() |
На дельфи уже сто лет не писал, но винсок везде одинаковый, думаю, вот это тебе поможет: Там всё разжёвано и переварено уже... в твоём случае тебе только надо будет раздобыть и зарегистрировать в проекте winsock.dll (или winsock2.dll), инициализировать через WSAStartup и вызвать что-нить типа closesocket() или shutdown()... Если нужна готовая утилита, то вот эта подойдёт: PS: Ну и ещё ты можешь себе на порт отправить TCP-пакет с флагом RST... |
||
|
ASudakov |
Дата 14.02.2008 - 16:42
|
||
Unregistered ![]() |
vo1d 1) просто прибиндиться к сокету и закрыть его shutdown-ом не получится. 2) TCPView не работает в командном режиме. вот если найти ее исходники (а Руссинович раньше их выкладывал), то переделать под свои нужды можно 3)
примерно про это я и писал 14.02.2008 - 10:32, только разрыв неплохо бы слать в обе стороны. |
||
|
Опиум |
Дата 15.02.2008 - 09:17
|
||||
![]() 86₽/$ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 102869 Пользователь №: 7415 Регистрация: 8.04.2006 - 14:37 ![]() |
да.. было дело..только я их (исходники) не скачивал ![]()
о. интересно, никакой номерок sequence соблюдать не надо? Асинхронно послать? |
||||
ASudakov |
Дата 15.02.2008 - 09:49
|
||
Unregistered ![]() |
ну наверное надо. и какая разница - синхронно или асинхронно? см. исходники здесь |
||
|
![]() |
![]() ![]() ![]() |
Правила Ярпортала (включая политику обработки персональных данных)