Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2015.03.01;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.002 c
15-1405892115
Германн
2014-07-21 01:35
2015.03.01
Viber - что это такое?


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


11-1256294410
Валера
2009-10-23 14:40
2015.03.01
Есть ли парсер XML на KOL ?


2-1390470755
JohnKorsh
2014-01-23 13:52
2015.03.01
Многострочные стринги в StringGrid


15-1405897306
sdabs
2014-07-21 03:01
2015.03.01
Любая система защиты уязвима?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский