Private Const MAX_READ As Long = 65536 Private bytData() As Byte Private FileReadSize As Long Private strRequest As String Private strFilePath As String Private lngFileLen As Long Private intFilePointer As Integer Private strBlockData As String Private Sub Form_Load() usrSocket(0).LocalPort = 80 usrSocket(0).Listen End Sub Private Sub usrSocket_ConnectionRequest(Index As Integer, ByVal requestID As Long) Load usrSocket(1) usrSocket(1).CloseSck usrSocket(1).Accept requestID End Sub Private Sub usrSocket_SendComplete(Index As Integer) If FileReadSize < lngFileLen Then FileRead Else Unload usrSocket(1) End If End Sub Private Sub usrSocket_DataArrival(Index As Integer, ByVal bytesTotal As Long) strFilePath = "d:\bigfile.avi" lngFileLen = FileLen(strFilePath) FileReadSize = 0 strRequest = "HTTP/1.1 200 OK" & vbCrLf & "Server: ServLite" & vbCrLf & "Last-Modified: Tue, 21 Mar 2006 14:24:28 GMT" & vbCrLf & "Connection: Close" & vbCrLf & "Content-Length: " & lngFileLen & vbCrLf & vbCrLf intFilePointer = FreeFile Open strFilePath For Binary As #intFilePointer FileRead End Sub Private Sub FileRead() If MAX_READ > lngFileLen Then strBlockData = Space(lngFileLen) ElseIf FileReadSize + MAX_READ > lngFileLen Then strBlockData = Space(lngFileLen - FileReadSize) Else strBlockData = Space(MAX_READ) End If Get #intFilePointer, FileReadSize + 1, strBlockData If FileReadSize = 0 Then bytData = StrConv(strRequest + strBlockData, vbFromUnicode) Else bytData = StrConv(strBlockData, vbFromUnicode) End If FileReadSize = FileReadSize + Len(strBlockData) usrSocket(1).SendData bytData() End Sub
ReDim bytData(LaLongueurChosisie) Get #intFilePointer, FileReadSize + 1, bytData ' ou bytData(0), à vérifier
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Sub sub1() sub2 End Sub Private Sub sub2() sub1 End Sub