server端对于不确定的客户端连接或是大量的客户端连接该怎么设计? 如果同时有数百个客户端连接到Server端,server端该用什么样的处理方式呢?异步的还是同步的,用同步的话可不可以不要为每个连接建立一个新线程?异步的能处理这么多的socket连接么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 服务端建立Listen线程,收到客户连接请求后分配一个Session线程(socket),每个Session线程和client端socket通讯。 如果你使用windows NT/2000操作系统,建议你使用IoCompletion技术。否则可以采用如下技术:使用1个或者几个线程对数据进行接收/发送处理,建立一个线程池,当数据接收完毕后从线程池中取出闲置的线程对数据进行处理。(使用异步线程)—————————————————————————————————Let your soul guide you upon your waymy qq is :131780 线程池结构可以应付大量的并发请求,但效率会较低,一般要用到互斥量的。另外最致命的是大量线程的创建、撤销操作严重消耗服务器的资源,导致性能(cup、内存等)下降,我曾测试过该机制,200线程以内可以考虑。建议采用回调机制,整体效率会是线程池的数倍,可以参考squid的实现机制。 嗯怎么说呢?我所说的线程池指的是thread pool,在进程开始运行的时候启动比如10个线程,当有请求的时候从线程池中取一个线程来处理数据,当处理完数据后线程不结束,而是回收到线程池中。应该不会有线程的创建、撤销等问题。 "建议你使用IoCompletion技术",并且要求用户只能使用 NT 系列操作系统. 除了重装系统还有其他的挽救之法吗???请高手帮忙,急急!!!!!!! 窗口切换的小程序------可能是很小的问题,但是难住我了 SDK程序中,如何获得客户区中一个字符串的长度。 请大家推举VC++入门书籍 100相赠 怎样刷新所有的窗口? 头大了~~~ 请教高手:如何让一个类中所有函数都拥有相同属性(内详) 请问如何创建新的工作线程? 做毕业设计,想找些资料......求助!!! 求IDL和ODL语法说明!!!!! winPcap应用问题!!郁闷死我了·各位大虾救命 啊 急!高分请教音标显示问题
每个Session线程和client端socket通讯。
否则可以采用如下技术:
使用1个或者几个线程对数据进行接收/发送处理,建立一个线程池,当数据接收完毕后从线程池中取出闲置的线程对数据进行处理。(使用异步线程)
—————————————————————————————————
Let your soul guide you upon your way
my qq is :131780
建议采用回调机制,整体效率会是线程池的数倍,可以参考squid的实现机制。