How can I listen on more than one port at a time?
Answer / 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 |
What does af mean in sockets?
What is socket address with example?
How do I use TCP_NODELAY?
Why do I get connection refused when the server is not running?
When should I use UDP instead of TCP?
Explain the TIME_WAIT state.
What are raw sockets?
What are Sockets?
What is a socket set used for?
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?
What are the pros/cons of select(), non-blocking I/O and SIGIO?
How to find other end of unix socket connection?