SOCKET服务器5000-10000个连接 本帖最后由 lsjwq 于 2012-07-10 10:35:32 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对于这个问题我是这样解决的:模拟一个线程池。这个线程池是动态的公用的。产生握手信号时,并不马上生成新线程,二是把相关信息存储起来(static list or db)直到传输数据时才产生新线程,等数据传输完毕后判断线程总数,如果没达到线程池阙值则本线程并不销毁回收,而是等待下次相同的握手信号做二次复用(这样的好处是能最大限度够避免线程建立和销毁对系统性能产生的影响)。如果达到了线程池的阙值,那么就需要按照一定的策略来回收(销毁)线程。至于使用怎么样的回收策略可以根据具体业务来决定。 http://topic.csdn.net/u/20120614/23/52e322d7-1ddd-4c8e-ae68-756e121d07ff.html 楼上的搞清楚udp,tcp的区别了么?没事别瞎参合。本来我对北大青鸟还不是很厌恶,要是老碰到你这样的就难说了。 还不理想,那就换SocketAsyncEventArgs吧 使用异步模式(BeginXXXXXXXX),.net 自动使用完成端口模式。通信量不大(指网络和CPU都未满载),2万个连接都没问题。 知道啊但SocketAsyncEventArgs的优势不在异步,也不线程操作而在资源的重复使用我继续参合 光使用BeginReceive来完成?还是 BeginReceive + 自定义委托的异步?我这个分两步操作,第一步,接收数据头内容,第二,接收正式文本内容 我用的VS2005,没有SocketAsyncEventArgs这个吧。 说的有理,SocketAsyncEventArgs可以避免每次都去申请内存,提高内存使用率可以比BeginXXX跟高效些若是使用.NET20的话,那就使用BeginXXX,它的IO模型是完成端口,去使用系统的线程池。 .NET 使用GDI在gif上增加文字。 C# Sql添加数据的问题 datagridview中某一列字段替换问题 关于泛型和listView的问题! 如何用XPath从XML中选取一部分XML节点,添加到DataSet中 窗口从不透明变透明时会闪烁一下 datagrid中使用boolean类型 怎么根据返回的一个object类型变量里值的类型,定义一个这种类型的数组 请问params的作用是什么? 请问用C#开发出来的程序能否跨系统平台 net做的windows服务程序,如何与用户界面交互? c#控制 usb 密码小键盘的输入。
楼上的搞清楚udp,tcp的区别了么?没事别瞎参合。本来我对北大青鸟还不是很厌恶,要是老碰到你这样的就难说了。
知道啊
但SocketAsyncEventArgs的优势不在异步,也不线程操作
而在资源的重复使用我继续参合
还是 BeginReceive + 自定义委托的异步?我这个分两步操作,第一步,接收数据头内容,第二,接收正式文本内容
我用的VS2005,没有SocketAsyncEventArgs这个吧。
若是使用.NET20的话,那就使用BeginXXX,它的IO模型是完成端口,去使用系统的线程池。