Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.045 c
2-1149830550
graf
2006-06-09 09:22
2006.07.02
И снова вопрос о FTP


15-1149513333
oldman
2006-06-05 17:15
2006.07.02
Нужен совет (не могу пока найти онколога)... :(


15-1149488116
sound81
2006-06-05 10:15
2006.07.02
Проверка актуальности антивирусных баз


15-1149318507
Py
2006-06-03 11:08
2006.07.02
Сигнатуры файлов проекта Дельфи


2-1149773314
AlexanderMS
2006-06-08 17:28
2006.07.02
ActionToolBar: стрелочка справа...




   Наверх