Estoy intentando hacer un gestor de descargas en VB6 usando el componente Winsock y el protocolo HTTP. Pues bien despues de pedir al servidor que me envie el archivo, el servidor me responde con un conjunto de headers y seguidamente comienza el archivo en el mismo paquete.
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim buffer() As Byte
Dim packet() As Byte
Dim header As String 'aqui se guardarán los headers (información sobre el archivo asi como tamaño, etc)
Winsock1.GetData buffer
For i = 0 To bytesTotal
header = header & Chr(buffer(i))
n = InStr(1, header, vbCrLf & vbCrLf, vbTextCompare) ' si encuentra dos veces salto de línea significa que empieza los datos binarios del archivo.
If n >= 1 Then
Exit For
End If
Next i
End Sub
La variable buffer() contiene al principio los headers y seguidamente contiene los datos del archivo por eso quiero pasar de la variable buffer() a la variable packet() solo una parte de la variable buffer() para poder separar los headers y los datos. Quiero que copie nada más que donde empieza la informacion del archivo... es decir de Len(header) en adelante hasta lo que ocupe la variable buffer() que en este caso seria bytesTotal)
He probado algo así como:
packet = buffer(Len(header) To bytesTotal)
y sin exito ninguno xDD
PD: He probado en hacer
For i = Len(header) to bytesTotal
packet(i-Len(header) = buffer(i)
next i
Pero despues al poner eso en un archivo final no lo hace bien
Open "C:/archivo.rar" For Binary As #1
Put #1, , packet
Close #1
El principio del archivo lo hace bien pero despues empieza a poner numeros sueltos separados por espacios... cosa a la que no veo ningun sentido...:S.