#include #include #include #include #include int main(int argc, char **argv) { fd_set rfds, wfds, efds; int s, rc; struct timeval timeout; char buf[1025]; s = socket(PF_INET, SOCK_STREAM, 0); if (s == -1) { perror("couldn't create socket"); return -1; } FD_ZERO(&rfds); FD_SET(s, &rfds); FD_ZERO(&wfds); FD_SET(s, &wfds); FD_ZERO(&efds); FD_SET(s, &efds); timeout.tv_sec = timeout.tv_usec = 0; rc = select(s + 1, &rfds, &wfds, &efds, &timeout); if (rc == -1) { perror("select"); return -1; } printf("select result=%d\n", rc); if (FD_ISSET(s, &rfds)) { rc = read(s, buf, 1024); if (rc == -1) { perror("read"); return -1; } printf("read result=%d\n", rc); } return 0; }