关于高效率Socket连接的有关问题
关于高效率Socket连接的问题
Socket连接有这么几个步骤,问题是我的程序已经是多线程是用Parallel或者ThreadPool的方式都试过。本机资源和网络带宽都只是用了一点点。所以我认为瓶颈可能在于等待网络连接的耗时。
那么我想尽量减少连接。所以有了底下的代码
初始化:
//循环代码
但是并不是我说认为的在初始化中一次连接,然后在循环中Send信息或Receive信息这么简单。
会报这个个错.{由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值。}
请问这个是对方服务器的限制还是我本机的的限制,如何可以达到我的目的?
------解决方案--------------------
我的建议是这样的 ,用异步多线程 ,这样相当于对线程池的封装 。理论并发量7500条。这个是我目前知道的效率和抗压力最好的 。你可以考虑一下
- C# code
Socket _Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); _Socket.Connect(_IpEnd); _Socket.Send(url); var response = Encoding.Default.GetString(data, 0, _Socket.Receive(data));
Socket连接有这么几个步骤,问题是我的程序已经是多线程是用Parallel或者ThreadPool的方式都试过。本机资源和网络带宽都只是用了一点点。所以我认为瓶颈可能在于等待网络连接的耗时。
那么我想尽量减少连接。所以有了底下的代码
初始化:
- C# code
Socket _Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); _Socket.Connect(_IpEnd);
//循环代码
- C# code
_Socket.Send(url); var response = Encoding.Default.GetString(data, 0, _Socket.Receive(data));
但是并不是我说认为的在初始化中一次连接,然后在循环中Send信息或Receive信息这么简单。
会报这个个错.{由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值。}
请问这个是对方服务器的限制还是我本机的的限制,如何可以达到我的目的?
------解决方案--------------------
我的建议是这样的 ,用异步多线程 ,这样相当于对线程池的封装 。理论并发量7500条。这个是我目前知道的效率和抗压力最好的 。你可以考虑一下