Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I use poll to accept multiple clients? (TCP Server) (C)

This polling business seems like it was written by a madman, and I am unsure how to use it to allow for multiple clients to connect to a server and then send their input to all other clients.

So if I want to have three clients going, I will need something like:

  ufds[0].fd = sd;
  ufds[0].events = POLLIN;
  ufds[1].fd = sd2;
  ufds[1].events = POLLOUT;
  ufds[2].fd = sd2;
  ufds[2].events = POLLOUT;
  ufds[3].fd = sd2;
  ufds[3].events = POLLOUT;
  ufds[4].fd = sd2;
  ufds[4].events = POLLOUT;

And then do what exactly so that messeges can be read in and written out?

like image 610
countofmontecristo Avatar asked Dec 15 '14 22:12

countofmontecristo


1 Answers

Here is an example using "C" and "select" on Linux:

http://www.binarytides.com/multiple-socket-connections-fdset-select-linux/

Here is an example using "poll":

http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzab6/poll.htm

like image 69
shooper Avatar answered Sep 21 '22 17:09

shooper