网络编程服务器客户端1对多的有关问题,求高人

网络编程服务器客户端1对多的问题,求高人
CS构架,一个服务器与200多个客户端通讯,客户端服务器间通讯数据不多,但必须保持实时通讯,不能断开
如果解决?开200多个线程不实际吧
哪位大虾有实例?拜求~~~~

------解决方案--------------------
完成i/o
------解决方案--------------------
异步通信
------解决方案--------------------
建议学一下tcp/ip的思路……呵呵……
------解决方案--------------------
overlapped I/O or IOCP.
------解决方案--------------------
完成i/o
建议LZ看下书,找点资料
------解决方案--------------------
如果不考虑将来的扩充,数据量不大的情况下,开200多个线程也是可以的
完成端口解决的是网络通讯和处理效率,不一定就最佳。
有时候软件项目的编写时间也要考虑进去,采用完成端口方案,你的很多代码甚至结构都有可能要重写,另外它并不一定能够解决实时问题。
------解决方案--------------------
1:200,不考虑扩容的话,无所谓模型的选择
------解决方案--------------------
如果数据量很少的话,可以考虑用WSAAsyncSelect,然后直接在消息处理中收发,这样最简单。IOCP的效率主要体现在大并发量的连接和数据收发上,你的情况是保持200连结小数据量,所以我认为用不着IOCP
------解决方案--------------------
数据量不大,开线程应该可以的,你可以先用线程测试一下效果啊
------解决方案--------------------
overlapped I/O
------解决方案--------------------
要是所有的scoket都做同样的事情,写一个线程定义就可以来,只不过起200个同样的线程而已

也可以用select判断,哪个socket有数据到达,就处理哪个,这样用一个或者几个就可以来
------解决方案--------------------
Win NT以上系统支持WSAAsyncSelect、WSAEventSelect、Overlapped IO、IOCP几种模式,但WSAEventSelect跟WSAAsyncSelect因为实现上依赖WSAWaitForMultipleEvents ,而WSAWaitForMultipleEvents 对于Event的数量有一个限制即不超过WSA_MAXIMUM_WAIT_EVENTS (64),所以如果使用WSAEventSelect跟WSAAsyncSelect,多于64个Client就必须相应增加线程来处理,但这两种模式相对实现简单,IOCP可以支持最大限度由可用socket句柄号数决定,但IOCP实现比较复杂。
------解决方案--------------------
补充下楼上:原始的select模型也有64个socket的限制,不过可以通过重定义来扩充,不知道WSAWaitForMultipleEvents 是不是也可以这样
------解决方案--------------------
主要问题在于我的服务器端是要主动去connect那200多个客户端?

有个前提,服务端连接客户端,必须首先获得客户端的信息,通常都是listen等待客户端连接,之后,才能够获得连接客户端的必要条件。

你的客户端和服务端之间的通信协议是如何定的?

服务端connect多个客户端,也可以用IOCP实现,200个客户端肯定是没有问题。如果对200客户端的connect需要同时保持长连接(这个需求很少),并且需要相互独立的管理这200个连接,开销比较大。
如果是短连接方式的话,设置一个链接池来管理。
------解决方案--------------------
如果是这种情况,建议采用开200个线程的方式
这样维护起来方便,而且可以大量输出调试信息便于调试