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 |
How can I bind() to a port number < 1024?
What are socket exceptions? What is out-of-band data?
Why do we need sockets?
What exactly does SO_LINGER do?
How can my client work through a firewall/proxy server?
How can I read ICMP errors from connected UDP sockets?
How can I listen on more than one port at a time?
How can I find the full hostname (FQDN) of the system I am running on?
What is the difference between read() and recv()?
Why do not my sockets close?
What is the difference between SO_REUSEADDR and SO_REUSEPORT?
What pieces of information make up a socket?