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 should I choose a port number for my server?
What is the difference between close() and shutdown()?
How do unix sockets work?
How come only the first part of my datagram is getting through?
How do I convert a string into an internet address?
Why do we need socket programming?
What is a socket address?
What are socket exceptions? What is out-of-band data?
Can multiple clients connect to same socket?
What is the difference between a socket and a port?
Can multiple sockets use the same port?
Why do not my sockets close?