Как быстро опредилить открыт ли TCP порт у внеш. приложения

Для неординарных вопросов. Если вы опытный программист, попавший в трудную ситуацию, — вам сюда.

Модератор: gaidar

Правила форума
Этот раздел не предназначен для того, чтобы вы адресовали свою проблему профессионалам.
Этот раздел предназначен для профессионалов, которые столкнулись с проблемой и не могут решить ее самостоятельно.
Если вы считаете себя профессионалом, а свою проблему сложной — вам сюда.
Если модератор посчитает, что вы ошиблись, то на первый раз он перенесет ваше сообщение в основной раздел без последствий для автора. Во второй раз тема будет закрыта, а автору будет выписано нарушение. В третий раз автор будет забанен.
Madway
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 06.01.2008 (Вс) 14:47

Как быстро опредилить открыт ли TCP порт у внеш. приложения

Сообщение Madway » 03.03.2009 (Вт) 2:04

Имеется приложение Client32. При работе оно устанавливает связь с серверной часть по протоколу TCP.

Скрин касперским - соединение с сервером выполнено успешно
Изображение

Скрин касперским - попытка соединится
Изображение


На VB6 я пишу приложение которое должно отслеживать состояние соединения этого приложения.
Как мне быстро (1-3 сек) узнать состояния открытого порта этого приложения (порт не открыт, порт открыт но не связи с сервером нет, порт открыт и связь есть)?

Локальный порт может быть любым. Порт на стороне сервера фиксированный.

Вариант перебора всех портов неподходит, очень медленно.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как быстро опредилить открыт ли TCP порт у внеш. приложения

Сообщение alibek » 03.03.2009 (Вт) 9:15

Через WMI, думаю.
Остальные способы куда геморройнее.
Lasciate ogni speranza, voi ch'entrate.

Madway
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 06.01.2008 (Вс) 14:47

Re: Как быстро опредилить открыт ли TCP порт у внеш. приложения

Сообщение Madway » 03.03.2009 (Вт) 13:07

alibek писал(а):Через WMI, думаю.
Остальные способы куда геморройнее.


Если через WMI, то в каком классе можно получить подобную информацию?

И какие остальные способы?

Через что будет работать не принципиально, главное чтобы быстро

Madway
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 06.01.2008 (Вс) 14:47

Re: Как быстро опредилить открыт ли TCP порт у внеш. приложения

Сообщение Madway » 04.03.2009 (Ср) 11:38

Откопал...

1 Способ ( без возможности получения имени процесса открывшего порт)

Код: Выделить всё
Declare Function GetTcpTable Lib "IPhlpAPI" _
  (pTcpTable As MIB_TCPTABLE, pdwSize As Long, bOrder As Long) As Long

Declare Function GetUdpTable Lib "IPhlpAPI" _
  (pUdpTable As MIB_UDPTABLE, pdwSize As Long, bOrder As Long) As Long


Исходники:
http://www.freevbcode.com/ShowCode.asp?ID=3759

2 Способ

.... попозже напишу


Вернуться в Раздел для Профессионалов

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

    TopList