利用VB6實現(xiàn)客戶端與服務端傳輸文件 ━━━━━━━━━━━━━━━━━━━━━━━━━ 如果文件大的話,一定不要大于8k 一個例子我自己做的,基本沒有問題了 服務器代碼: Option Explicit Private Sub Command1_Click() Dim BytDate() As Byte Dim FileName As String Dim lngFile As Long Dim i As Long FileName = "D:\Image\Oct2003.MDB " '取得文件名及路徑 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 '初始化數(shù)組 Open FileName For Binary As #1 '打開文件 Get #1, i * 1024 + 1, myFile '將文件寫入數(shù)組 Close #1 '關閉文件 Winsock1.SendData myFile '發(fā)送 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 = "d:\abc.MDB" 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 '將收到的數(shù)據(jù)寫入新文件中 Close #1 '關閉 End Sub |
|