导航:首页 > 文件教程 > vb传输文件

vb传输文件

发布时间:2025-07-20 23:57:03

1. 用vb传输文件(winsock,TCP)

发送每一个文件前先发送文件信息块,内含此文件的名称、长度等信息。接受方可根据长度数据来断开数据流。

2. VB WINSOCK 实现文件传输

假设文件名占用8个字节,将发送文件的第1个字节存储为文件名的长度8,然后用第2-第9个字版节存储文件权名,接收时,先获取第一个字节,得到文件名的长度8,然后截取在byte中的索引1-8的数据,还原文件名。
供参考

3. VB winsock文件传输

在Winsock时你可以像Tcp发送报文一样 规定多少位到多少位是干什么用的

Dim s As String * 10
s = "1.txt"
winsock1.senddata s & "yourfile

那么在Winsock.getdata myfile时
trim(left(myfile,10))就是你的文本名称
right (myfile,len(myfile-10))就是你的文本内容
指定文本是你可以在
Winsock1.GetData myFile后用commondialog控件来自己指定或者用Dirver与Dir控件来决定路径

4. VB用WinSock传输文件

你的文件传输程序还在开发初期,本机就是在几乎完全理想的网络上是可回以成功的,一旦在两台不答同的电脑间传输,你的文件传输程序的问题就暴露出来了。

因没有看到你的源代码,很难一下就诊断出你的程序到底存在什么问题。

一般你要注意的要点是:

  1. 每包长度不超过1500字节, 最好在1k以下

  2. 发出第一包,等待确认包

  3. 收到一包,完成校验报文,保存好一包后,回个含包号的确认

  4. 收到确认包发下一包,超时没收到确认,重发同一包

  5. 这样循环,直到传完为止

你可以用传输自己特制的诊断文件,来快速诊断你程序的问题所在,比如做个文件第一包全1,第二包全2.。。。第十包全0, 第十一包全a,。。。第36包全z, 第37包全A,。。。第72包全Z。 然后反复发送这个文件,这样,收到的文件打开看一眼就看出少了什么,然后检查相关的程序。

5. VB winsock传输文件问题

服务器代码:
Option Explicit

Private Sub Command1_Click()
Dim BytDate() As Byte
Dim FileName As String
Dim lngFile As Long
Dim i As Long
FileName = "d:\a.exe " '取得文件名及路径
lngFile = FileLen(FileName) \ 1024 '取得文件长度
Me.ProgressBar1.Min = 0
Me.ProgressBar1.Max = lngFile + 1
ProgressBar1.Value = 0
For i = 0 To lngFile
ReDim myFile(1023) As Byte '初始化数组
Open FileName For Binary As #1 '打开文件
Get #1, i * 1024 + 1, myFile '将文件写入数组
Close #1 '关闭文件
Winsock1.SendData myFile '发送
DoEvents
ProgressBar1.Value = ProgressBar1.Value + 1
Next i
If ProgressBar1.Value = ProgressBar1.Max Then MsgBox "OK"

End Sub

Private Sub Form_Load()
Winsock1.Protocol = sckTCPProtocol
Winsock1.LocalPort = 2001
Winsock1.Listen

FormCLI.Show
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> 0 Then Winsock1.Close
Winsock1.Accept requestID

End Sub

客户端代码:
Option Explicit

Private Sub Form_Load()
With Winsock1
.Protocol = sckTCPProtocol
.RemoteHost = "192.168.0.69"
.RemotePort = 2001
.Connect
End With

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Static i As Long
Dim myFile() As Byte
Dim myLong As Double
Dim myPath As String
myPath = "e:\b.exe"
ReDim myFile(bytesTotal - 1) '此处也可以是(0 To bytesTotal-1)
Winsock1.GetData myFile

Open myPath For Binary As #1 '新建文件
myLong = FileLen(myPath)
Put #1, myLong + 1, myFile '将收到的数据写入新文件中
Close #1 '关闭
End Sub
抄的。

阅读全文

与vb传输文件相关的资料

热点内容
在烧杯app中如何做出玻璃 浏览:335
数控M22螺纹编程倒角怎么计算 浏览:142
mt主题文件名介绍 浏览:355
黔东南有哪些县有5g网络 浏览:286
怎么样看网络还有没有钱 浏览:931
电信网络如何连接路由器 浏览:126
微云文件在微信哪里打开 浏览:133
dll文件win7和win10有区别吗 浏览:949
word文件怎么使用建模符号 浏览:169
英剧在哪里看app 浏览:706
wow重生武器怎么升级 浏览:971
编程为什么要越早越好 浏览:144
qqv669下载 浏览:230
戴尔3d作图用哪个app 浏览:434
无法启用无线网络 浏览:254
富士通一体机bios密码 浏览:664
合格移动端app开发包括哪些 浏览:384
notepad整理代码 浏览:877
分身有术app 浏览:482
网络优是什么 浏览:410

友情链接