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?