Текущий архив: 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