Официальный сайт студ.городка НГТУ
Программирование и БД » [С#] как узнать, открыт ли 80 порт? 

#1  14.05.06 18:39

[С#] как узнать, открыт ли 80 порт?

надо узнать, подключен ли компьютер к инету.
только не предлагайте перехватывать ошибку NullRefrenceException,)
плиз, очень надо!

Исправлено tatarin (15.05.06 14:20)

Offline

#2  14.05.06 18:55

Re: [С#] как узнать, открыт ли 80 порт?

попробуй туда коннектиться, ну можно ещё поанализировать вывод телнета

Offline

#3  14.05.06 19:38

Re: [С#] как узнать, открыт ли 80 порт?

вопрос крайне пространен ?!
хост  удаленый или нет ?
WMI, ADSI
FW  какой  ?
что сидит на 80 известно ?

Offline

#4  14.05.06 21:55

Re: [С#] как узнать, открыт ли 80 порт?

Beker написал(а):

вопрос крайне пространен ?!
хост  удаленый или нет ?
WMI, ADSI
FW  какой  ?
что сидит на 80 известно ?

я пишу прогу, которая в фоновом режиме будет скачивать мне подкасты (mp3 файлы)  заданной тематики.
Для начала я получаю RSS ленту с russianpodcasting через System.Net.WebClient и парсю ее. Затем сортирую по размеру (желанию\приоритету) и в потоке с пониженным приоритетом скачиваю.
Пока обрыв связи не учитываю, т.е. если коннект оборвется, а файл недокачан, то он "теряется".

так вот нажимать постоянно кнопку "скачать" мне влом, тем более, что я часто отключаю дил-ап. Хочу сделать, чтобы скачивание начиналось авто-ки как я захожу в инет.

Нифига написал:)

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

Собственно, пока все на try{} catch(NullRefrenceException...//возникает при обрыве связи.

Offline

#5  15.05.06 22:25

Re: [С#] как узнать, открыт ли 80 порт?

Неужели никто не знает? или слишком простой вопрос?
наверняка в винде генерируется какое-то сообщение при подключении к инету-можно хук присобачить.
только вот какое?

Offline

#6  15.05.06 23:14

Re: [С#] как узнать, открыт ли 80 порт?

Посмотри принцип работы любого менеджера закачек.
Периодически пытаются сконнектиться с сетью и ловят SocketException.
Даже наличие интернета не гарантирует доступность сервиса, к которому собираешься коннектиться.

Offline

#7  24.05.06 18:29

Re: [С#] как узнать, открыт ли 80 порт?

нашел красивый способ:
While developing Internet applications, this is important to check whether the internet connection is available or not. We can achieve this with few lines of code.

Step 1: Include the following Namespace to your class.
using System.Runtime.InteropServices;This Namespace is necessary to call a function exported from unmanaged DLL.

Step 2:  Use the following lines of code to import a function from the unmanaged DLL.
[DllImport("wininet.dll",CharSet=CharSet.Auto)] static extern bool InternetGetConnectedState(ref ConnectionState lpdwFlags, int dwReserved);


http://www.developerfusion.co.uk/show/5346

Offline

#8  25.05.06 01:05

Re: [С#] как узнать, открыт ли 80 порт?

tatarin написал(а):

нашел красивый способ:
While developing Internet applications, this is important to check whether the internet connection is available or not. We can achieve this with few lines of code.

[DllImport("wininet.dll",CharSet=CharSet.Auto)] static extern bool InternetGetConnectedState(ref ConnectionState lpdwFlags, int dwReserved);

Скорее всего, определяется сам факт подключения: даже если сетевуха соединена со свичем, а дальше никуда, то функция вернет true.

Это во-первых, а во-вторых, все-равно дальше придется соединяться с хостом и ловить SocketException :)

Offline

#9  25.05.06 21:22

Re: [С#] как узнать, открыт ли 80 порт?

а там флаг по ссылке передается-по нему можно будет состояние определить:)

Offline

Программирование и БД » [С#] как узнать, открыт ли 80 порт? 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.033 сек.
Выполнено 14 запросов.