Главная страница
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.037 c
1-1148481266
harddrive_tester
2006-05-24 18:34
2006.07.02
Тестирование жёсткого диска


8-1130929059
Provodnick
2005-11-02 13:57
2006.07.02
Проблема с тесселяцией многоугольника в OpenGL


2-1149954352
Fiallo4ka
2006-06-10 19:45
2006.07.02
заполнение таблиц в базе


6-1140552050
Vangog
2006-02-21 23:00
2006.07.02
Отправить файл на сервер методом Post


2-1150272289
cherman
2006-06-14 12:04
2006.07.02
tchart