Форум — Development Select (Alex) 0 0 Pytayus` naity chto - to delnoje v knigah po UNIX ob ispolzovanii "Select" v socket programming , no ne naho>|<u. Pomogite razobratsa! Mo>|<et dadite adresok v i-net. Spasibo . Alex. Ссылка
далеко не идеальный пример: fd_set rset, allset; FD_ZERO(&allset); FD_SET(sd_mond, &allset); // некий демон FD_SET(sd_conn, &allset); // клиент (один здесь) int maxfd = sd_conn + 1; int nready; // go in the main loop... for(;;) { // обнуляем последовательность (ну хорошо, множество) для ожидаемых сокетов rset = allset; // ждёмс... nready = select(maxfd, &rset, NULL, NULL, NULL); // кому-то очень хочется прикрыть лавочку (родителю, например)... if ( must_terminate ) break; // что-то случилось ? if ( nready <=0 ) { log << argv[0] << ": " << DAQ_GetTime() << " select() interrupted" << endl; continue; } // перепихнёмся с демоном (это уже частности)... if ( FD_ISSET(sd_mond, &rset) ) { net_ec >> event; if ( ! net_ec ) { cout << DAQ_GetTime() << argv[0] << ": " << net_ec.StrError() << endl; break; } net_ec.Signal(); if ( ! net_ec ) { cout << argv[0] << ": " << DAQ_GetTime() << net_ec.StrError() << endl; break; } addEvent(event); } // или с клиентом... if ( FD_ISSET(sd_conn, &rset) ) execCommand(); // все довольны, идём на следующую итерацию } filin ★★ (08.01.01 18:37:23 MSK) Ссылка