This has probably been asked many times.

I need some resources on winsock programming, what im aiming to achieve is to program a server/client chat model where the sever will be able to cope with lots of clients talking.

I have heard there are three types of server, well there are three, maybe more.

Non - Blocking
Blocking
Asynchronous.

I mainly need help with the server, ie accepting multiple connections and then checking them all for data coming in.