局域网内如何进行大文件传输?急!急!!

benbenchong 2000-11-09 10:00:00
最近在学VB,碰到一个难题。
如果我想从局域网的一台机子上传送一个大文件到其它多台机子(单向),不知用udp如何实现。用tcp/ip有连接则不能做到同时传给网络上的所有机子。另外在用udp传送大文件,如zip文件时,接收方收到的文件总是大小有误,不知错在何处。如果不能用udp实现,请赐教解决的办法。万分感谢。(最好有源程序)
...全文
1977 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcx 2000-11-24
  • 打赏
  • 举报
回复
udp一次发的数据包不能太大,一般不能超过2048字节
但你的发送频率高的话也会丢失,比如
for
send
next
这样一次发送的数据包要减少一下,如256字节,我试过400字节发一次都有数据丢失,你自己试试看
每发一次最好能够doevents一下
你发的每个数据包最好带上校检,没收到就重发
jerryleo 2000-11-10
  • 打赏
  • 举报
回复
UDP是不可靠的连接,有可能丢包,所以你需要进行验证。用TCP/IP则需要利用SOCKET数组,才能用来同时连接多台机子,因为TCP/IP是一对一的连接,即用一个SOCKET来LISENNING,用一个SOCKET数组来建立连接,进行传输。
lj96 2000-11-10
  • 打赏
  • 举报
回复
有现成的netmeeting不用,偏偏要自己编程解决。真有点践骨头的感觉。
oreh 2000-11-10
  • 打赏
  • 举报
回复
lynxliu is all right.
茂奇软件 2000-11-10
  • 打赏
  • 举报
回复
research boardcast in tcp/ip.
jansen zhu.
lynxliu 2000-11-10
  • 打赏
  • 举报
回复
我认为你的方案不现实,传送文件,或者其他的信息都要求有软件在端口上面处理受到的数据,所以你一定要进行客户端和服务器端的编程。另外,个个客户机部会同时受到,因为数举报是要有地址的,发广播消息,一半截手段不会处理,即使处理,广播帧不会跨越网段,这样在另一个网段里的机器就不会收到,而且这也大大降低网络的响应速度,丢镇等现象会很严重,根本无法使用udp。根据你的需求,我建议你直接使用exchange或者notes,最多在上面再开发。广博是最不可靠的,一般采取客户端向服务器进行请求的方式。
benbenchong 2000-11-10
  • 打赏
  • 举报
回复
benbenchong
我就是笨,问题都没讲清楚。在此重新阐述一下
我的意思是:
1。从我这台机子向其它机子广播,有时也传送大文件。要求整个网内的其它机子都能同时
收到
2。整个网络也许不是局域网,如小型intranet。而且网络会不断扩大,即客户端会不断增
加。
我仔细看了vb相关书
A、如果采用winsock的tcp/ip有连接协议,则加入一客户端就
建立一个连接,这样随着客户端的不断增加会将服务器端资源耗尽,所以肯定不行。
B、采用udp协议,如何确定每个包的大小。采用动态byte数组,如果文件有几十
甚至上百兆,数组能行吗?vb中数组最大是多少?
C、可不考虑网络的带宽。

pc00000 2000-11-10
  • 打赏
  • 举报
回复
最简单的方法就是用 COPY (本地文件) \\其他计算机\共享目录写在程序里人家又不知道!(我经常用这种方法唬人的!...嘻嘻!)
唯一的一点是要做好共享等级!
hx 2000-11-10
  • 打赏
  • 举报
回复
照jerryleo的就可以了,MSDN有例句。
gameboy999 2000-11-10
  • 打赏
  • 举报
回复
to benbenchong:
用UDP来实现聊天或发送简短信息,当客户端提出要传递文件时,再采用oicq式的文件传输方式建立point to point模式(即tcp/ip)。
万一你实在想象解霸那样实现联网播放,那还是得用UDP,UDP的范围不能超过一个域或者说不能超过一个网段,这时可以编写一个消息转发器放在域与域之间的那个服务器上,应该可以实现跨网段通信。至于动态数组,我觉得用不着一次性的把文件读出来,一次读取256个字节或着更多(用string类型),再马上发出去,当然得注意打开文件时是按照什么方式打开的。
不过得注意同步问题,最好是自己再加上一些通信语言,如发送方发送时先发送一个ready信号等等。
至于一个包有多大,我想大概只有2k~8k之间,具体多少还真没试过。
我个人认为以后UDP的用途将更可靠和广泛。
E 2000-11-09
  • 打赏
  • 举报
回复
你贴代码上来最好
基于C#的物联网核心Socket通信源码:高效管理多连接,数据缓冲队列,可内嵌至各类项目,简单易用,适合初学者与项目用,不含数据处理与异步技术。,Socket服务器和客户端通信源码,C#编写,这是从 一个商业级的物联网项目分离出来的核心代码,让你绕过最难写的Socket管理,服务器内置两个Socket,支持多连接,有两个数据缓冲队列,,仅一个静态类文件,调用即可获得客户端传上来的数据。 客户端带断线重连功能,简单实用,能内嵌于任何基于C#语言编写的项目中(MVC、Winform、控制台、Webform,类库……),适合初学者或有迫切要完成项目需求使用。 特别说明: 1、 本代码仅是连接和提供收到的数据,并不对数据进行处理,因为代码并不知道你收到的数据含义,但提供了数据读取接口。 2、 本连接使用的不是异步技术。 3、 由于各人代码风格和思路差异较大,很难说得清楚值不值,在联系之前,请尽可能描述清楚你的应用场景需求。 4、 本代码的应用场景是服务器和客户端通过互联网或局域网互发byte[]或字符串数据,如果不是类似的场景,请慎 ,核心关键词: Socket服务器; 客户端通信源码;

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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