The OpenNET Project / Index page

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

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

"Вопрос по select()"  
Сообщение от zkrvova email(ok) on 24-Фев-06, 16:50 
Здравствуйте, пытаюсь читать из сокета с использованием select() но чегото невыходит. Такая програмка:
tv.tv_sec = 5;
tv.tv_usec = 0;

while(1){
FD_ZERO(&rfds);
        FD_SET(sid, &rfds);

if ((iosize = select(1, &rfds, NULL, NULL, &tv)) > 0){

iosize=read(sid, buf, PACKET_SIZE-1);
printf("Paket poluschen - %s\n",buf);
}else{
printf("Timeout\n");
}
}
Хоть приходит пакет, хоть неприходит,, всёравно select() ждёт 5 сек и вываливается с 0.
Что я неправильно делаю, подскажите!

Спасибо!

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

 Оглавление

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


1. "Вопрос по select()"  
Сообщение от elvenic (??) on 24-Фев-06, 17:59 
> if ((iosize = select(1, &rfds, NULL, NULL, &tv)) > 0){

Надо

    if ((iosize = select(sid + 1, &rfds, NULL, NULL, &tv)) > 0){

$man select
<...>
int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
<...>
n is the highest-numbered descriptor in any of the three sets, plus 1.
<...>

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

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

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




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

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