導航:首頁 > 文件教程 > 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傳輸文件相關的資料

熱點內容
制度文件審批表格式 瀏覽:373
iso文件u盤安裝win7系統 瀏覽:135
文件管理英語怎麼說 瀏覽:329
linux虛擬機掛載共享文件 瀏覽:247
微店都有哪些app 瀏覽:548
工廠直供app有哪些種 瀏覽:458
caj怎麼打開pdf文件 瀏覽:979
各種版本的小蘋果歌詞 瀏覽:782
xp文件夾怎麼加密 瀏覽:550
端面圓弧只知道弧長怎麼編程 瀏覽:94
數據治理崗要干什麼 瀏覽:657
杭州市民卡如何綁定市民卡app 瀏覽:861
網站入侵全套教程 瀏覽:15
java獲取指定文件路徑 瀏覽:11
word目錄第一個和最後一個目錄有縮減 瀏覽:48
dt35升級版 瀏覽:815
單片機原理介面及應用程序 瀏覽:273
手機想p圖用什麼app 瀏覽:632
workstation安裝教程 瀏覽:361
proe數控模擬教程 瀏覽:483

友情鏈接