http://www.rjlee.dyndns.org/projects/programs/telnet/
This isn't a ready-rolled solution, but it demonstrates one way to do a multi-client network server using non-blocking streams. The code's in C++ but the network stuff all uses the C library, so it should still be readable.
The other way, which is probably better in most cases, is to use xinetd to spawn one copy of the program you've already written for each connection.