Socket通信设计有关问题,连接选择

Socket通信设计问题,连接选择
如题,由于需要做的是一个C/S模式的系统,需要两端通信。
问题一:由于客户端集中管理N个服务端,这里采用多线程技术(每个socket连接都用一个线程)这样的话,貌似在高并发的时候,线程切换的开销比较大。,这个如何处理
问题二:我是这样想的,服务端开机后主动连接客户端,然后建立连接。这里有一个问题就是,我可能需要传输文件,这里传输文件可能较大,不可能完全在服务端建立连接的socket上来传送,我的意思是新建一个线程,和一个socket来与服务端通信传输文件,问题就是这里,这个通信的建立,是客户端发出一个命令后,由服务端来发起来接请求好还是客户端主动发起来连接好,额,。服务端发起连接的话,怎么区分这个连接是不是新的服务器建立的连接。
问题三:我看过其他人都说IOCP模式比较忙适合高并发,但是我不不熟悉这个模式。我采用的ACE架构,听说里面哪有一个reactor,就是对IOCP的封装,但是也不熟悉这里的东西,所以希望大家给点意见
------解决方案--------------------
首先问下你这个用户数量会在什么级别?
如果只是几十百把个人用,那你也别考虑那么多了。

------解决方案--------------------
问题二:我是这样想的,服务端开机后主动连接客户端

客户端不就成了服务端?!?

看你描述,应该客户量不大,是长连接,文件传输。

win32下就iocp呗,当用户大了,还是得改

网上查查拿过来改改就行了


------解决方案--------------------
引用:
引用
首先问下你这个用户数量会在什么级别?
 如果只是几十百把个人用,那你也别考虑那么多了。

如果用户在2000左右有影响吗

2000个做管理的话,可以用短连接啊,反正那么多状态你都看不过来。
------解决方案--------------------
不知道有多少前人掉在TCP Socket
send(人多)send(病少)send(财富)
recv(人多病)recv(少财富)
陷阱里面啊!
http://topic.****.net/u/20120210/09/51109ed0-07b9-41f2-b487-a51597f2ca01.html

------解决方案--------------------
引用:
Quote: 引用:

据我所知,用ACE的人很少。

为什么很少啊,难道都直接用windows的API或者其他的吗?

http://www.baidu.com/s?ie=utf-8&bs=%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E7%94%A8ACE&f=8&rsv_bp=1&rsv_spt=3&wd=%22%E4%B8%8D%E7%94%A8ACE%E2%80%9D&rsv_sug3=8&rsv_sug4=108&inputT=2140
Socket通信设计有关问题,连接选择