I have just started learning network concepts.

In this multithreaded server/client [program](http://www.binarytides.com/server-client-example-c-sockets-linux/), at the end there is code written for the server to handle multiple connections. My question is how server is handling multiple connections on the same socket & port(8888). One socket can accept only one client on one port at a time and what role are threads playing in this by creating `pthread_create()`?

Can someone give me a pictorial representation of sockets, ports, threads so that it will be clear for me.The more I read, the more I am getting confused.