Форум — Development pomogite s «Select» (Alex) 0 0 Ne mogu naiti informatsiju ob ispolzovanii "Select" v programirovanii socketov pomogite . Spasibo vsem . 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 21:20:00 MSK) Ссылка