Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Можно ли как-нить узнать свободен ли данный порт?   Найти похожие ветки 

 
SergP   (2003-09-16 11:01) [0]

Сабж.
Смысл в том что в проге используется TServerSocket (для внутренних целей).
Типа:
TWebbrowser <--> TserverSocket <--> Обработчик запросов и ответов <--> TClientsocket <--> Инет

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


 
Карелин Артем   (2003-09-16 11:03) [1]

Клиентский сокет в блокирующем режиме делает коннект. Хост 127.0.0.1 порт известный. Дальше смотри на реакцию сокета.


 
SergP   (2003-09-16 13:03) [2]


> Карелин Артем © (16.09.03 11:03) [1]
> Клиентский сокет в блокирующем режиме делает коннект. Хост
> 127.0.0.1 порт известный. Дальше смотри на реакцию сокета.


Как я понял нужно создать еще один ClientSocket, с помощью которого по очереди проверять некоторый диапазон портов ? И если сокет не сможет сконектиться то значит порт свободен?


 
Dimka Maslov   (2003-09-16 13:11) [3]

1. Создаёшь сервер и вешаешь его на нужный тебе порт
2. Создаёшь клиента и пытаешся соединиться с сервером 127.0.0.1:port
3. Если сервер установил соединение - порт свободен, если сервер ничего не установил порт занят


 
SergP   (2003-09-16 13:48) [4]


> Dimka Maslov © (16.09.03 13:11) [3]
> 1. Создаёшь сервер и вешаешь его на нужный тебе порт
> 2. Создаёшь клиента и пытаешся соединиться с сервером 127.0.0.1:port
> 3. Если сервер установил соединение - порт свободен, если
> сервер ничего не установил порт занят


Хорошо. А эксперименты с "занятым портом" не повлияют на выполнение копии программы которая уже использует именно этот порт?

И нет ли более простого способа определения? А то использование дополнительных сокетов как-то нехорошо выглядит, типа усложненно...


 
Polevi   (2003-09-16 13:58) [5]

The Windows Sockets bind function associates a local address with a socket.

For TCP/IP, if the port is specified as zero, the service provider will assign a unique port to the application with a value between 1024 and 5000. The application can use getsockname after bind to learn the address and the port that has been assigned to it


 
SergP   (2003-09-17 07:09) [6]


> Polevi © (16.09.03 13:58) [5]
> The Windows Sockets bind function associates a local address
> with a socket.
>
> For TCP/IP, if the port is specified as zero, the service
> provider will assign a unique port to the application with
> a value between 1024 and 5000. The application can use getsockname
> after bind to learn the address and the port that has been
> assigned to it


Хм... Что-то я такого не наблюдаю. Или что-то не так делаю. Устанавливаю порт 0. потом активирую сокет. А как узнать на какой порт его теперь система "повешала"? Свойство port у serversocket не изменяется после активирования...


 
Digitman   (2003-09-17 10:53) [7]

MyServerSocket.Socket.LocalPort


 
delpher_gray   (2003-09-18 20:49) [8]

try
ServerSocket1.Open;
except
ShowMessage("Порт занят !!");
// Меняй порт, пробуй заного...
end;


 
Polevi   (2003-09-18 22:19) [9]

ох...


 
Digitman   (2003-09-19 08:11) [10]


> SergP


глаза раскрой !)


> Digitman © (17.09.03 10:53) [7]



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.037 c
1-41568
senya
2003-10-27 15:32
2003.11.13
DBGrid - одна строка в нескольких


6-41859
mao
2003-09-11 11:09
2003.11.13
Сложно создать приложение для работы с локальной сетью?


1-41326
UnixManiac
2003-10-31 01:08
2003.11.13
Не хочет работать TMediaPlayer


1-41565
AndreyA
2003-10-27 16:04
2003.11.13
HTML


1-41340
Agent[007]
2003-10-30 20:35
2003.11.13
TDBComboBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский