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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
3-1146815925
Nike
2006-05-05 11:58
2006.07.02
Как установить значения поля по умолчанию в добавляемой записи


2-1150366435
BFG9k
2006-06-15 14:13
2006.07.02
Длина динамического массива внутри процедуры


1-1148326889
Ortodocs
2006-05-22 23:41
2006.07.02
Ошибка в DLL при помещении её в HKLM->....->AppInit_DLLs


2-1149706067
Alextp
2006-06-07 22:47
2006.07.02
Определить моноширинный шрифт


2-1149828601
Layner
2006-06-09 08:50
2006.07.02
Как передать в создаваемую форму параметр, как в функцию