The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Вопрос по select(), !*! zkrvova, 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.
Что я неправильно делаю, подскажите!

Спасибо!

  • Вопрос по select(), !*! elvenic, 17:59 , 24-Фев-06 (1)
    >    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.
    <...>




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

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