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

Вниз

FD_SETSIZE vs сокеты   Найти похожие ветки 

 
kernel ©   (2010-05-23 12:56) [0]

Доброго времени суток, уважаемые!
Правильно ли я понимаю, что из-за прописанной в WinSock константы FD_SETSIZE = 64 более 64 потоков подключений с использованием сокетных классов (основанных на TCustomWinSocket) в блокирующем режиме обрабатывать я не смогу?
И второй вопрос, вытекающий из первого. Как наиболее безболезненно переопределить FD_SETSIZE (например до 1000), чтобы все TCustomWinSocket работали уже с новым значением FD_SETSIZE. Если я просто изменю это значение в WinSock и перекомпилирую последний, думается мне, товарищи "эмбаркадеровцы" на меня обидятся (или лицензия delphi такие махинации позволяет?).


 
DVM ©   (2010-05-23 21:04) [1]


> Правильно ли я понимаю, что из-за прописанной в WinSock
> константы FD_SETSIZE = 64 более 64 потоков подключений с
> использованием сокетных классов (основанных на TCustomWinSocket)
> в блокирующем режиме обрабатывать я не смогу?

Я точно могу сказать, что у меня есть и работают программы, в которых более 64 одновременных соединений и режим как раз блокирующий.  FD_SETSIZE  я не переопределял.


 
Slym ©   (2010-05-25 12:53) [2]

kernel ©   (23.05.10 12:56)
1. FD_SETSIZE  используется только при вызове select
2. селеклится в 1 потоке FD_SETSIZE сокетов
3. потоков может быть больше чем 1 и больше вем 64...
4. руки проч от генофонда :)
5. ЦЕЛЬ КАКАЯ?


 
Slym ©   (2010-05-25 12:54) [3]

Slym ©   (25.05.10 12:53) [2]
6. можно вообще без select жить и тогда FD_SETSIZE по барабану


 
Григорьев Антон ©   (2010-05-25 13:32) [4]

FD_SETSIZE влияет только на размер типа TFDSet, который используется в функции select. На количество одновременных подключений он никако не влияет. А TCustomWinSocket и иже с ним работают через AsyncSelect, а не через select, поэтому значение FD_SETSIZE им безразлично.


 
kernel ©   (2010-05-25 16:46) [5]

Благодарю всех ответивших!

Т.е., получается, для каждого нового вызова select с новой переменной типа TFDSet (в каждом новом потоке) будет назначено по FD_SETSIZE = 64?
PS: у меня все равно есть пара мест, где я сам вызываю select (каждый select в новом потоке).


> 5. ЦЕЛЬ КАКАЯ?

Не дать обломаться 65-ому клиенту :)


 
Цукор5   (2010-05-31 11:46) [6]

Посмотри книгу "О чем не пишут в книгах о Delphi" там эта тема разжевана. Можно больше 64, но там массив из TFDSet"ов



Страницы: 1 вся ветка

Текущий архив: 2015.03.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.004 c
15-1405110602
Юрий
2014-07-12 00:30
2015.03.01
С днем рождения ! 12 июля 2014 суббота


4-1271143894
DagOT-R
2010-04-13 11:31
2015.03.01
Окно на WinApi внутри Dll


15-1403526910
Дмитрий СС
2014-06-23 16:35
2015.03.01
VPN сервер


15-1405801802
Юрий
2014-07-20 00:30
2015.03.01
С днем рождения ! 20 июля 2014 воскресенье


6-1274604979
kernel
2010-05-23 12:56
2015.03.01
FD_SETSIZE vs сокеты