捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
在局域网内多播稳定传送大文件
关键字:MultiThreadSendFile 局域网 多线程 传送大文件 TCPIP
来 自:原创
平 台:Win9x,Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:中级 完成时间:2005/3/21
发布者:hxb_leiyuan 发布时间:2005/3/21
编辑器:DELPHI7 语  种:简体中文
分 类:网络 下载浏览:10745/20830
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
近来有许多大富翁朋友提出“如何在局域网内多播稳定传送大文件”的问题,为此我做了这个小程序供大家参考。

我的思路:传送文件有很多方法,我看到的大富翁上的朋友说过,用udp的方式不能稳定传送大文件,故我决定采用TCPIP方式。同时考虑到速度,我提供了多线程创送的方式。

程序包中有两个文件夹:1)接收程序;2)发送程序

以下操作说明是针对单机操作的:

1)将任意一个文件命名为“测试例子.rar”,然后放在发送程序目录下;或者启动发送程序后再选择
2)启动接收程序目录下的Server.exe程序
3)启动发送程序目录下的MultiThreadDemo.exe程序
4)在MultiThreadDemo.exe程序中,从“Synchronization Method”GroupBox中选择一种同步方法
   注意!!!!在单机操作时,只能选择Mutex方式
5)在MultiThreadDemo.exe程序中,点击“创建同步对象”Button
6)在MultiThreadDemo.exe程序中,点击“传送文件”Button
7)传送完毕后,到接收程序目录下查看是否收到“测试例子.rar”

针对局域网的操作,我没有做测试,以下是几点说明:
1)自行修改“传送文件”Button的OnClick事件
2)注意往不同的机子传送时,要为线程中的私有变量设置相应的IP地址和端口,同时将Server.exe拷贝到这台机子上
3)可以进行异步创送,即No Synchronization和Semaphore方式

读者如果想使用该例子,建立进一步完善传送过程中的容错处理。

这是个demo程序,难免会有许多bug,希望读者原谅,同时把发现的问题和更好的思路发email给我。

          黄晓斌
          hxb_leiyuan2000@163.net
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论18条 当前显示最后6条评论
cash95 2005/3/27 14:59:38
多播也叫组播,一种向特殊地址发送的特殊UDP广播包的通讯模式,比如239.1.1.1:9000就是一个多播地址/组,多播的好处是,只有在多播组中的主机才接收数据,相对普通广播方式,能极大的节省网络带宽。
riverqh 2005/3/27 20:13:20
呵呵,组播在一对多才有真正好处吧?嗯,对于在局域网服务端IP的定位也可以用组播来解决,当然是S和C都实现约定一个组播IP和端口,每次C想连接前先加入组播地址发送查询,S当然也监听这个组播地址并立刻回应包含自己IP的数据,C退出组播再连接S的局域网IP,呵呵,笨笨的实现。
dv66isme 2005/5/9 19:50:01
下载了,编译不了,说 exceptionlog.dcu 没找到。
站长或其他网友,有该文件的发给我  tdavid@sohu.com
seround 2005/5/18 23:32:34
我在想如果在这程序上稍做一些改动,能不能做成传输视频数据的程序?也就是说像QQ视频那样我将我的视频通过局域网传输然后另一台机器接收到然后显示出图象,我们使用这个程序互相视频?如果能,应该怎样改动?希望你不吝赐教,谢谢!
wyd19790823 2006/5/15 14:07:29
我下载后,修改发送程序及接收程序的实际IP 地址后,就无法发送与接收了?能帮我解释一下吗?
qq757526555 2007/12/21 16:28:41
在局域网测试时,修改地址为实际地址后,出现错误(包括本机实际IP),无法运行,
有没有高手指点一下。
exceptionlog.dcu 没找到的话,可以删除掉,就能编译了。
方法是把MultiThreadDem.dpr中的ExceptionLog删除就OK.
ExceptionLog一般在use的第一行。
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表