假设一万个客户端需要连接服务器,选用什么传输协议比较好??????

wj549860366 2011-03-17 08:31:41
假设一万个客户端需要连接服务器,选用什么传输协议比较好??????
...全文
597 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
风中一匹狼 2011-04-14
  • 打赏
  • 举报
回复
问哈,如何让客户端同时向多个服务器同时发送数据呢,高手求解!
luluyy 2011-03-18
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 vrhero 的回复:]
引用 18 楼 lizhibin11 的回复:
我认为一般公司可能不会让一台服务器承载1000个以上的客户端,即便你们的要求这么极端,不但承载10000个,而且10000个会同时发送数据,SocketAsyncEventArgs也完全没问题。别忘了我这是一台笔记本,同时承载服务端和一万个客户端连接。

你忘了一件事...假设每个连接流量1Kbps(这非常小),10000个就差不多10Mbps……
[/Quote]

对` 要专用的服务器处理专门的数据 比如一个服务器专门处理图片,有的专门处理视步有的专门处理语音等等
采用分布式 而且这个服务器集群不光是一个` 有好多个比如QQ就是这样的`全国各地基本都有`要不然一地震坏掉了`迄不是QQ就从世界消失了?这些服务器集群中的数据都是一样的`这不是最主要的`我认为这样做的原因例似于P2P 不同地区的人连接不同地区的服务器`这样速度快
xu_2007 2011-03-18
  • 打赏
  • 举报
回复
楼主朋友,你表达的这个概念不是很清楚,如果你是要测试1万个连接同时连接到服务器,而不发送任何数据的话,那么SocketAsyncEventArgs这个类完全可以在一台服务器上实现一万个连接;如果你是要测试一万个连接同时并发多少字节的数据量到服务器的话,那就不好说了,这和你们公司的网络带宽也有非常大的关系。不过有朋友测试过,我给出数据:千M局域网, IBM3650 10台HP工作站, 模拟5000客户端 , Tcp长连接, 每个客户端每秒200次, 每次8K数据 , 没有丢包, 但服务CPU非常高.. !你可以参考一下!
jprshhx0 2011-03-17
  • 打赏
  • 举报
回复
最底层的都是Tcp/Ip Udp,往上才是http
lizhibin11 2011-03-17
  • 打赏
  • 举报
回复
我认为一般公司可能不会让一台服务器承载1000个以上的客户端,即便你们的要求这么极端,不但承载10000个,而且10000个会同时发送数据,SocketAsyncEventArgs也完全没问题。别忘了我这是一台笔记本,同时承载服务端和一万个客户端连接。
wj549860366 2011-03-17
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lizhibin11 的回复:]
正好刚才做了一个SocketAsyncEventArgs的测试,服务端和客户端在同一台机器,一万个客户端同时发起连接,连接之后立即发送客户端系统时间,服务端接收到后与接收时间比较,一万个连接的发送与接收时间差如上图。
三万个连接在我这个笔记本上就没办法全部收到了,原因目前还不清楚。不过正常使用中瞬间一万个客户端同时连接并同时发送数据的情况不多见,更不用说三万个了。
[/Quote]

我现在面临的问题就是一万个客户端同时连接并同时发送数据,不知道该怎么办呢!
int64 2011-03-17
  • 打赏
  • 举报
回复
还是看你的系统优化和架构
lizhibin11 2011-03-17
  • 打赏
  • 举报
回复
上面单位是毫秒,连接协议是TCP
lizhibin11 2011-03-17
  • 打赏
  • 举报
回复

正好刚才做了一个SocketAsyncEventArgs的测试,服务端和客户端在同一台机器,一万个客户端同时发起连接,连接之后立即发送客户端系统时间,服务端接收到后与接收时间比较,一万个连接的发送与接收时间差如上图。
三万个连接在我这个笔记本上就没办法全部收到了,原因目前还不清楚。不过正常使用中瞬间一万个客户端同时连接并同时发送数据的情况不多见,更不用说三万个了。
tongguoyoujianZLB 2011-03-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 zhengyanming2005 的回复:]
引用 3 楼 chengjia2284 的回复:
引用 1 楼 vrhero 的回复:
“一万个客户端连接”这种说法很模糊...一天内?一小时内?还是同时?

传输协议现在全世界几乎都只用TCP/IP这一种...而高并发能力由架构和软硬件条件决定,跟传输协议没有太大关系...

+1


+1
[/Quote]
+1
Mr.小铭 2011-03-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chengjia2284 的回复:]
引用 1 楼 vrhero 的回复:
“一万个客户端连接”这种说法很模糊...一天内?一小时内?还是同时?

传输协议现在全世界几乎都只用TCP/IP这一种...而高并发能力由架构和软硬件条件决定,跟传输协议没有太大关系...

+1
[/Quote]

+1
wj549860366 2011-03-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 beargo 的回复:]

TCP的话它本身就是会自动分配通道给不同连接上来的不同客户,因为它是长联的...
UDP则所有都是用相同的端口来接收.所以理论上它是没有客户连接上限的.它只管发或收..不管是谁来的..所以..如果你用UDP的话必须在包信息头里加上所需要的区分的信息..例如哪个客户的,是什么类型的东西.发送文件的话它是哪个文件的.此包在文件的起始位置,此包的实际内容长度.有了这些头信息.就可以分析判断是谁的东西……
[/Quote]

如果选用TCP,如何解决连接上限的问题呢???????????
beargo 2011-03-17
  • 打赏
  • 举报
回复
TCP的话它本身就是会自动分配通道给不同连接上来的不同客户,因为它是长联的...
UDP则所有都是用相同的端口来接收.所以理论上它是没有客户连接上限的.它只管发或收..不管是谁来的..所以..如果你用UDP的话必须在包信息头里加上所需要的区分的信息..例如哪个客户的,是什么类型的东西.发送文件的话它是哪个文件的.此包在文件的起始位置,此包的实际内容长度.有了这些头信息.就可以分析判断是谁的东西,需要做什么事情了.
wj549860366 2011-03-17
  • 打赏
  • 举报
回复
我要解决的也正是楼上所说的
zhouliang0806 2011-03-17
  • 打赏
  • 举报
回复
关键要考虑多个端口的客户端同步的问题.
我借lz的问题,提一个相关的问题:
如果有1w的客户机想向同一个服务器同时传递文件,这个有没有可能实现?
是不是需要用不同的端口来分别接受,否则,每个客户机的请求都通向了同一个socket通道,传输是不是就出问题了。
wj549860366 2011-03-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 vrhero 的回复:]

“一万个客户端连接”这种说法很模糊...一天内?一小时内?还是同时?

传输协议现在全世界几乎都只用TCP/IP这一种...而高并发能力由架构和软硬件条件决定,跟传输协议没有太大关系...
[/Quote]

同时连接,“高并发能力由架构和软硬件条件决定”,能不能具体点,给我点架构和软硬件方面的思路???
ycproc 2011-03-17
  • 打赏
  • 举报
回复
TCP/IP UDP
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mervyn807 的回复:]
楼主没注意协议的作用是什么
协议只是给你一个发送和接受数据的格式而已
[/Quote]
同意
缭绕飘渺 2011-03-17
  • 打赏
  • 举报
回复
楼主没注意协议的作用是什么
协议只是给你一个发送和接受数据的格式而已
kid_wang 2011-03-17
  • 打赏
  • 举报
回复
TCP/IP。1000万也是这个。连接的速度、安全性、信息损耗都和协议没关系。
加载更多回复(6)

111,125

社区成员

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

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

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