TCPCLIENT一个客户端同时对多个服务端发送数据

wmycom 2016-03-26 12:37:21
现在需求是一个客户端对多个服务端发送数据

我的客户端程序是4个新线程,分别连接4个服务端

现在出现的问题是发送数据到服务端时,只对一个连接就很快,但是4个同时连接,同时发送就会很慢

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

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧