方法1:每台机用TCP连接服务器,请求数据.
这种方法令服务器的网络和硬盘负载都很重.
方法2:用UDP的广播来发数据(即发送数据到192.168.10.255这样的地址)
方法3;用UDP的多播来发数据.
我是想问一下多播及广播方式传输速度与客户机台数有没有关系?
大家有没有其它好的方案呢?
大家积极参与啊,好的方案另外开贴给分.
这种方法令服务器的网络和硬盘负载都很重.
方法2:用UDP的广播来发数据(即发送数据到192.168.10.255这样的地址)
方法3;用UDP的多播来发数据.
我是想问一下多播及广播方式传输速度与客户机台数有没有关系?
大家有没有其它好的方案呢?
大家积极参与啊,好的方案另外开贴给分.
解决方案 »
- static char THIS_FILE[]=__FILE__;
- 急,如何对已打开的Excel文件进行写操作?
- 如何在List Control 中高亮显示查询到的行?
- TREE控件,弹出菜单后,如何让TREE控件失去焦点?
- 一个难以置信的实验- Stretchblt Vs DrawDibDraw
- 菜鸟提问,关于word插件
- 请问哪儿有<<The Design and Evolution of C++>>下载,最好中文版.
- 37316领分
- error C2086: 'hdc' : redefinition??
- linux is very good!why using windows and vc?
- 谁有测试某个ip是否可达的函数??如 bool COnnectIP( char *szIP); 可以ping通就返回true!!
- 关于组合框的一个问题
Send("File_Send_Request", 192.168.10.255, UDP)二 每个主机在收到广播后,立刻加入多播组中.三 你可以向多播组发送文件了.提醒一点:可以在第一步的广播信息中告知其它主机加入哪个多播组
这样处理起来要比TCP复杂很多,,
每台机子可以先从服务器读取不同部分的数据,然后已读取数据的机子就可以成为其它机子的种子.这样服务器负担就轻多了。客户机可以边读边做种让机子读取。
如果使用组播技术的话,传送文件就没法知道客户机是否接收到数据。
客户机要加入接收数据,有一个加入组播组的过程,(服务器没法知道有哪些客户机加入它的组播组[其它通知方法不考虑]);
这样还要求等所有的客户机加入组播组了,服务器才能开始发送数据,不然后面加入的客户机只能接收后半部分的数据(组播技术中,客户机是没法要求服务器重头发送数据,不然就不是组播了)。
组播的速度比较难控制,如果局域网比较大,负载不均衡的话,那部分客户机接收不到部分数据是很正常的事情。
方法1:每台机用TCP连接服务器,请求数据
-------这种方法足够了。
我的设想是要5分钟实现.
对TCP来说,100台机器并不是什么大的数目。
速度不是算出来的。
你说的1G/秒,100台机要2分钟,但有些数据不是这样算出来的,有其它技巧。
我正在设想一个方法,
5分钟向局域网内100台机各分发1G的文件,
应该是行得通的。
我的设想和 wolong98(Wangyang)说的差不多。
========================================================================================
我晕,楼上的帐算的不对呀。难道你要一个文件传给一台机子,等传完再传给另一台机子吗?WINDOWS是多任务,多线程的操作嘛,象你这样算,看来只有在速度上加快了。等待更快速度的网络设备吧!即使1G/s,100台还需要2分钟!研究一下象迅雷这样的软件看一下
========================================================================================并不是说传完一台再传一台,
但服务器的带宽的有限的呀,就算你开10000个线程也好,100M的网络大概也只能达到8M左右吧。所以我的计算是没错的。
我是以服务器带宽为准计算的,无论你开多少个线程也好,速度最快都是12.5M/秒。
照 wwwllg(wwwllg) 的说法就是要3个半小时,我相信5分钟内应该可以实现。
这里不是盯字眼的地方.
我的设想是要5分钟实现.
-------------
硬盘对考,看要几分钟?