Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WSA.Listen


GanibalLector ©   (2006-01-06 01:37:00) 


function Listen(S:TSocket;BackLog:Integer):Integer;

Параметр S задаёт сокет, который переводится в режим ожидания подключения. Этот сокет должен быть привязан к адресу, т.е. функция Bind должна быть вызвана для него явно. Для сокета, находящегося в режиме ожидания, создаётся очередь подключений. Размер этой очереди определяется параметром BackLog. Если этот параметр равен SoMaxConn, очередь будет иметь максимально возможный размер. В MSDN'е отмечается, что узнать максимально допустимый размер очереди стандартными средствами нельзя. Функция возвращает ноль в случае успешного завершения и Socket_Error в случае ошибки.



В WinSock.pas SoMaxConn=5 ! Это что ж получается,что у сервера не может быть более 5 клиентов??? ИМХО,бред.


Fay   (2006-01-07 15:11:00) [1]

2 Verg ©   (06.01.06 21:37) [11]
Я имел ввиду то же самое


FrykT   (2006-01-07 08:21:00) [2]

>>2Verg
нет, оно контролируется ОС. Очередь эта.

>>2Fay
>>"Оно" - это хто? LOL
"Оно" -- ЧИСЛО. т.е. максимальная очередь для обработки соединений.


Verg   (2006-01-06 21:37:00) [3]


> Fay ©   (06.01.06 12:26) [5]
> 2 GanibalLector ©  
>   Берём вторую, и не паримся 8)


Да хоть первую.

Этот параметр уже давно - весьма условная величина, определяющая макс. длину очереди запросов соединений не подтвержденных приложением (не акцепнутых). Иными словами - очередь неполностью установленных соединений. Т.е. глубину накополения запросов на соединение, компенсирующую задержку реакции твоего приложение на их возникновение. Как быстрее ты (твое приложение) можешь реагировать на поступающие запросы соединения, так меньше теоритически может быть быть это число.


Fay   (2006-01-06 17:10:00) [4]

2 GanibalLector ©   (06.01.06 16:26) [9]
Прости, но смысл "после WSA.Accept" "не разрешаю серверу делать Accept" до меня пока не доходит.

З.Ы.
WSA.Accept - что это?


GanibalLector   (2006-01-06 16:26:00) [5]

Ну,да.


Fay   (2006-01-06 15:55:00) [6]

колисечтва
8)) "количества", конечно


Fay   (2006-01-06 15:53:00) [7]

2 GanibalLector ©   (06.01.06 15:28) [6]
> посмотрев длину этой структуры
Это типа проверки на колисечтва подключений?


GanibalLector   (2006-01-06 15:28:00) [8]

Спасибо,понял.
На счет ограничений клиентов:
после WSA.Accept на сервере,я заполняю некоторую структуру.И,соответственно,посмотрев длину этой структуры не разрешаю серверу делать Accept. Я прав???


Fay   (2006-01-06 12:26:00) [9]

2 GanibalLector ©  
1) BackLog - Maximum length of the queue of pending connections.
  Не "клиетов у сервера", а в очереди на accept.
2) Смотрим Platform SDK...
    WinSock.h  : #define SOMAXCONN       5
    WinSock2.h : #define SOMAXCONN       0x7fffffff
  Берём вторую, и не паримся 8)

2 FrykT ©   (06.01.06 11:59) [4]
> В обычной ОС оно так и будет 5
"Оно" - это хто? LOL


FrykT   (2006-01-06 11:59:00) [10]

Если поставить число 50, то ничего страшного не будет. В обычной ОС оно так и будет 5, неавзирая на число 50. НО, если запустить на серверной ОС, то это число будет именно 50 ! Я непомню предела на серверной ОС.


Fay   (2006-01-06 08:52:00) [11]

2 GanibalLector ©   (06.01.06 1:43) [2]
А размер очереди как-то связан с количеством клиентов?
IMHO, слушающему гнезду не до них никакого дела.


GanibalLector   (2006-01-06 01:43:00) [12]

Вопрос : как ограничить сервер 5 клиентами?
Получается,что никак. Или 4 или 6.


GanibalLector   (2006-01-06 01:40:00) [13]

Или перефразируя это:
В MSDN'е отмечается, что узнать максимально допустимый размер очереди стандартными средствами нельзя.
и это
В WinSock.pas SoMaxConn=5

Я случайно ставлю 5 клиентов. Но получается,что это не 5,а  максимально допустимый размер.


Наверх

Титульная страница Поиск, карта сайта Написать письмо