论坛: 编程破解 标题: VB问题:实现文件传输 复制本贴地址    
作者: peter [peter]    论坛用户   登录
      用VB来实现局域网进行文件传输,一般用那几种方法??Winsock~~~??建立UDP还是TCP
还是用API函数。。如想整上文件夹发送又怎知实现。。望各位大哥能提供方法,意见

地主 发表时间: 05-05-11 14:26

回复: 286 [unique]   版主   登录
RPC,重定向,映射驱动器,HTTP,FTP,mailslot,pipe,TCP,UDP,ICMP,COM口,API,移动硬盘,软盘,刻录光盘,U盘,纸笔,口述。

B1层 发表时间: 05-05-12 08:55

回复: peter [peter]   论坛用户   登录
~~呵~~~~,RPC,重定向,mailslot,pipe  小弟对这四个东东(RPC,重定向:有少少听过和看过一下有关的鸟鸟),好像没怎么了解,虽然对我想知道的问题没什么帮忙,但我还是想知道一下这四个东东,,能浅谈一下吗?
    但还是要提一下。。。能对我上面的问题正面一点的意见吗!!麻烦各位啦~~~

B2层 发表时间: 05-05-13 11:15

回复: wxngzybb [wxngzybb]   论坛用户   登录
rpc是远程调用,调用系统自定义的服务可以传输文件,不用自己编细微的传输程序
重定向把连接的输入输出定向到指定区域
映射驱动器就是常见的netbios共享,net use命令行很方便实现
pipe是管道技术,将管道定向到sock接口
mailslot使用邮槽。win邮件接口函数使得邮件发送程序非常简单,不需要涉及smtp的连接细节和协议规则(不过smtp本身也很简单)



[此贴被 wxngzybb(wxngzybb) 在 05月14日01时10分 编辑过]

B3层 发表时间: 05-05-14 01:09

回复: peter [peter]   论坛用户   登录
          嗯~~~~~~~~~~~~`.......
  我用winsock这个控件建立UDP协议来传...但总有问题......如(A 传文件到 B :
  先由A 向 B 发传文件请求.--将有A ,文件的数据传过去....B收到确认.建立文件.
B向A发传文件内容请求,A收到B的请求后,向B发文件内容(将文件分段)等待B的回应..
B收到A的内容,将内容写入上面建立的文件后,又向A发出请求,等待A的数据.........)
--------当然,也有对数据发出,,,,收到,,等方面的东东..
我是按着这样的思路来写的.但实验结果总是不合意..(可以说是传输失败)比如说:我传一个只有
25字节的文件,收到也是25字节.但文件却有30字节.多出了5个字节,传一个1.5M的文件会出现
缓存溢出,数据报太大的错识.但传一个400多M的又不现出这种错误,(却发生掉包的现象)
.....烦呀~!!!!..



B4层 发表时间: 05-05-19 13:26

回复: 286 [unique]   版主   登录
你设置的太麻烦了。
如果按你的设计方案,你不如直接采用TCP,而不是UDP。因为TCP本身不需要你作那么复杂判断,只要函数发送是成功的,对方就一定是接到了。

如果非要采用UDP,也不是不行。UDP丢包是正常现象,不按顺序到达也是正常现象。但优点是简单,速度快。你可以把发送的包编上号,接收时,不按顺序包到达时加一个判断处理即可。
至于你说多了若干个字节,这要你打开看看,是多了哪些,为什么多了。


B5层 发表时间: 05-05-20 09:30

回复: 286 [unique]   版主   登录
至于你说的整个文件传输,这需要把对方创建成FTP服务器,然后你编程来访问这个服务器。然后用PUT命令,即可传过去。
这种方式的优点是你不用考虑传输细节,缺点是要求对方是FTP服务器。

B6层 发表时间: 05-05-20 09:32

回复: wxngzybb [wxngzybb]   论坛用户   登录
最最基本的TCP协议提供了流控保序重发等等很好的支持,是可靠的协议。
并不否定UDP的扩充可以达到同样效果,可是为什么不利用已有的技术呢
你用TCP连接阿
UDP本身是不可靠传输的协议。文件是数据完整性敏感的,所以咱们常用的FTP就是使用的2条TCP连接。当然tftp用了UDP

B7层 发表时间: 05-05-20 14:26

回复: peter [peter]   论坛用户   登录
      呵~~~~~~~~~~正在试着用TCP协议来传....我为了方便做实验.所以把文件传给自己..
但在建立连接的时侯总会出错..晕..跟自己建立TCP连接.应怎么做呀..~~~这winsock还真多
麻烦,错了这样又那样,就几个属性就把我搞得头痛.这个文件传输还真有点多学问..本想只不
过是建立一个连接.然后把文件拆分,一一发过去.接收方建立文件,把收到的数据写进去....
谁又会想到..~~~~~~总之是烦人呀.~~~~~简简单单的理论(自己想的理论)却如此的难而做到.

B8层 发表时间: 05-05-22 02:00

回复: wxngzybb [wxngzybb]   论坛用户   登录
vb下边winsock对象屏蔽了套借口传输的一些常规细节操作
服务器使用2个sock对象,一个是用于listen的,另一个用于accept之后的可连接对象
客户用一个tcp sock就可以了
端口对应定义好
自己的ip是回射地址127.0.0.1
server
1 listen
2 accept

client
1 connect

vb里边就这样了

实际sock编程步骤多些但是非常固化,所以你看看winsock2的书籍,用c来做,会全部明白的


B9层 发表时间: 05-05-22 03:20

回复: peter [peter]   论坛用户   登录
    原来有人3:20分还没睡..呵呵~~~~~~~~~.我还在搞呀,哈哈~~~~~~~~虽然想马上试着看看,
但,眼皮太重啦..(TMD,,,,,,这几天超多作业,又超多课要上,竟从早上8点.上到晚上10:30,真要我我的命),,三两天的又要作什么演讲,每次又要做PPT..........
    用两个sock,嗯~~~~~~~~~~

B10层 发表时间: 05-05-22 03:38

回复: peter [peter]   论坛用户   登录
      这个传输的问题是解决了,但传输的速度不够快.大概只有2M/S左右

B11层 发表时间: 05-05-24 23:50

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号