The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Проблема с select"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Проблема с select"  
Сообщение от Tverd (??) on 23-Ноя-06, 22:23 
Столкнулся с неприятной задачей. В TCL работа с событиями сокетов ведется через select. Т.е. мы получаем сокет через socket и добавляем его к таблице других сокетов.
Так вот во фре на ура у меня получается сокет больше чем 1024, который по умолчанию не влазиет в таблицу(FDSET).
Что тут делать?
Возможно ли фре ограничить выдаваемые сокеты < 1024 либо может есть у кого другие варианты решения этой задачи.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Проблема с select"  
Сообщение от DeadMustdie email(??) on 24-Ноя-06, 10:21 
Про TCL не знаю. А так вообще есть poll()

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Проблема с select"  
Сообщение от Tverd (??) on 25-Ноя-06, 21:14 
>Про TCL не знаю. А так вообще есть poll()

Да это понятно, я бы сделал сам на kqueue, но почему идет увеличение номеров сокетов. Такое ощущение что они не закрываются. Можно ли через netstat глянуть количество открытых сокетов?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Проблема с select"  
Сообщение от chip email(ok) on 27-Ноя-06, 08:16 

>Можно ли
>через netstat глянуть количество открытых сокетов?

Разумеется, возможно (man netstat?!). Можно воспользоваться еще lsof в большинстве GNU/Linux дистрибутивов идёт в штатной поставке. Для FreeBSD есть в портах.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Проблема с select"  
Сообщение от BsDr (ok) on 24-Ноя-06, 12:01 
>Столкнулся с неприятной задачей. В TCL работа с событиями сокетов ведется через
>select. Т.е. мы получаем сокет через socket и добавляем его к
>таблице других сокетов.
>Так вот во фре на ура у меня получается сокет больше чем
>1024, который по умолчанию не влазиет в таблицу(FDSET).
>Что тут делать?
>Возможно ли фре ограничить выдаваемые сокеты < 1024 либо может есть у
>кого другие варианты решения этой задачи.

При создании сокетов надо запоминать наибольший из них и при вызове select передавать max+1 в первый аргумент!
Стивенс. Разработка сетевых приложений стр.189

А во фре есть такая класная штука как kevent! Она лучше чем select.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Проблема с select"  
Сообщение от Tverd (??) on 25-Ноя-06, 15:36 
>При создании сокетов надо запоминать наибольший из них и при вызове select
>передавать max+1 в первый аргумент!

Как это в сях делается я понимаю.... почему вот они больше 1024 лезут, когда реально открытых 2-3 сокета...

>
>А во фре есть такая класная штука как kevent! Она лучше чем
>select.

Согласен, штука классная... :) Если бы я еще TCL решил перелопатить ;)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Проблема с select"  
Сообщение от Мимо проходил on 27-Ноя-06, 18:44 
>Столкнулся с неприятной задачей. В TCL работа с событиями сокетов ведется через
>select. Т.е. мы получаем сокет через socket и добавляем его к
>таблице других сокетов.
>Так вот во фре на ура у меня получается сокет больше чем
>1024, который по умолчанию не влазиет в таблицу(FDSET).
>Что тут делать?
>Возможно ли фре ограничить выдаваемые сокеты < 1024 либо может есть у
>кого другие варианты решения этой задачи.

или Вы вопрос формулируете неправильно,
или у Вас пока чехорда между понятиями файловый дескриптор и сокет..
чтобы понять разницу :
fd=socket(...);
printf("FD=%d",fd); /*< в 1024 влезает на раз :) - верхняя планка - число открытых файлов на процесс */

то есть беспокоиться, что номер дескриптора не влезет FDSET надо через ulimit (или как там он бышь во фре)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру