Форум: "Сети";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
Вниз
winsock назначение порта серверу Найти похожие ветки
← →
newprogrammer (2006-02-19 20:46) [0]в описании по Winsoc сказано что порт сервера не обязателно назначат явно а можно доверит ето системе
Addr.sin_port:=0;
но как потом узнать какой именно порт выделила система моему сокету
← →
atruhin © (2006-02-20 06:41) [1]Ты немного перепутал. Ты должен назначить серверу слушающий порт, когда к немы подсоединяется клиент, сервер вызывает функцию Accept и система возвращает свободный порт для работы, и устанавливает по немы соединение.
← →
newprogrammer (2006-02-20 11:56) [2]вот вырезка из статьи по иницыализации слушающего сокета:
Теперь рассмотрим другой случай: пусть выбор адреса и порта можно оставить на усмотрение системы. Тогда код будет выглядеть следующим образом:
Addr.sin_family:=PF_Inet;
Addr.sin_addr.S_addr:=InAddr_Any;
Addr.sin_port:=0;
FillChar(Addr.sin_zero,SizeOf(Addr.sin_zero),0);
if Bind(S,Addr,SizeOf(Addr))=Socket_Error then
begin
// какая-то ошибка, анализируем с помощью WSAGetLastError
end;
При использовании TCP сервер сам не является инициатором подключения, но может работать с любым подключившимся клиентом, какой бы у него ни был адрес. Для сервера принципиально, какой порт он будет использовать - если порт не определён заранее, клиент не будет знать, куда подключаться. Поэтому номер порта является важным признаком для сервера. (Иногда, впрочем, встречаются серверы, порт которых заранее неизвестен, но в таких случаях всегда существует другой канал передачи данных, позволяющий клиенту до подключения узнать, какой порт используется в данный момент сервером.)
← →
Polevi © (2006-02-20 13:29) [3]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
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.017 c