socket编程,一个服务器和多个客户端的交互,求思路解决思路

socket编程,一个服务器和多个客户端的交互,求思路
我要做的是一个上位机软件,连接多个不同 IP 的硬件设备(数量上限一百多个吧)。主要的功能就是向客户端传输文件数据,并接收客户端的返回应答。初次接触网络通信,思路不清,网上查找了大量资料,还是不太清楚,所以向各位寻求帮助,谢谢!
------解决方案--------------------
server: listen  -- accept 
client: connect

对没一个连接的设备分配一个连接,然后在此连接上面进行通信。
------解决方案--------------------
采用多线程,服务器每连一个客户端就开一个线程,
------解决方案--------------------
采用非阻塞IO模式,select/WSAAsyncSelect/Overlap IO/IOCP
------解决方案--------------------
非阻塞IO模式没有使用过,之后学习一下。
阻塞IO模式的方法,可以用多线程实现,思路如下:
server: accept 到一个client的connect就创建一个socket和一个线程,线程为用于接收client发送数据;楼主写时得需要注意一下系统资源问题,尤其是做较大型的程序。


------解决方案--------------------
使用一个map<>来存放连接的各个客户端信息
------解决方案--------------------
数量上限一百多个,真正并发的可能应该没有100吧,上位机做服务端,我觉得select应该就够了,只不过select的连接限制默认是64,如果超过64需要修改个宏定义具体可百度之。重叠IO不懂,IOCP感觉有点杀鸡用牛刀。
------解决方案--------------------
阻塞IO你用的好,程序一样很牛B,如果服务器有界面的话,推荐WSAAsyncSelect异步消息模型,此模型用起来很简单,之前我写过一个类似上位机服务器的软件,是防护舱通信的,客户端300+,用的WSAAsyncSelect