问题描述
现在需求是一个客户端对多个服务端发送数据我的客户端程序是4个新线程,分别连接4个服务端现在出现的问题是发送数据到服务端时,只对一个连接就很快,但是4个同时连接,同时发送就会很慢请问是哪里的问题
解决方案
解决方案二:
是带宽的问题,楼主用的是什么网络,家用的网络只是下载很快,上传则是极慢的,这是潜规则.
解决方案三:
首先,不要扯上什么“线程”概念,这样就能先避免一部分误区。你的进程中有四个TcpClient对象,对象就是对象,跟线程没有半毛钱关系,你把它们安排到程序中作为内存中的数据对象保存。如果这时候扯上“线程”概念,那么很自然地就会用一堆的相互牵制相互阻塞的东西来把简单的问题搞复杂了。然后,假设人和线程要发送数据,那么它就是类似这样的代码(例如使用第3个TcpClient来发送数据)tcplist[2].GetStream().Write(buffer,0,buffer.Length);
或者tcplist[2].GetStream().BeginWrite(buffer,0,buffer.Length,h=>{.....},null);
这就行了。当前操作在任何线程中都可以调用这样的方法,跟你说的那些线程根本没有关系。
解决方案四:
你一但说到“客户端程序是4个新线程”,这就一眼可以看出是个“大坑”,对“线程”概念走火入魔了而错误地理解了线程。
解决方案五:
比如说你的客户端进程有100个服务器要连接,当它成功连上这100个服务器之后,现在有几个(子)线程?一个都没有!因为你有100个TcpClient对象保存到程序的内存数据中就行了,跟线程有什么关系?
时间: 2024-09-29 18:46:55