Answer Posted / chaitanya
The best way to do this is with the select() call. This tells the kernel to let you know when a socket is available for use. You can have one process do i/o with multiple sockets with this call. If you want to wait for a connect on sockets 4, 6 and 10 you might execute the following code snippet:
fd_set socklist;
FD_ZERO(&socklist); /* Always clear the structure first. */
FD_SET(4, &socklist);
FD_SET(6, &socklist);
FD_SET(10, &socklist);
if (select(11, NULL, &socklist, NULL, NULL) < 0)
perror("select");
Is This Answer Correct ? | 0 Yes | 0 No |
Post New Answer View All Answers
What is a socket file?
Is there any advantage to handling the signal, rather than just ignoring it and checking for the EPIPE error? Are there any useful parameters passed to the signal catching function?
How can I tell when a socket is closed on the other end?
How many sockets can a port have?
What is active unix domain sockets?
Are sockets files?
Why do I get EPROTO from read()?
How can I set the timeout for the connect() system call?
Can multiple sockets use the same port?
What are the pros/cons of select(), non-blocking I/O and SIGIO?
What are the types of sockets?
What is sae socket?
How do I use TCP_NODELAY?
What is a sae socket?
How can I write a multi-homed server?