He intentado hacer un programa que consta de dos partes (que consta de cliente y servidor) en el que el cliente le manda el contenido de un archivo pdf y el servidor lo recibe y lo guarda en el disco D:, el problema es que al guardarlo el archivo tiene bastante menos extensión que el original y no se puede leer.
El programa es el siguiente (de momento solo tiene lo básico):
CLIENTE:
Private Sub cmdEnviar_Click()
Dim var As String
Open Text1.Text For Binary As #1
var = Space(LOF(1))
Get #1, , var
Close #1
If Winsock1.State = 7 Then Winsock1.SendData var
End Sub
Private Sub Form_Load()
Winsock1.RemoteHost = "127.0.0.1"
Winsock1.RemotePort = 123
Winsock1.Connect
End Sub
SERVIDOR:
Private Sub Form_Load()
Winsock1.LocalPort = 123
Winsock1.Listen
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close
Winsock1.Accept requestID
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim i As Integer
Dim var As String
i = bytesTotal
Winsock1.GetData var, vbString
Open "d:\name.pdf" For Binary As #2
Put #2, , var
Close #2
End Sub
Alguien sabe en que puede estar fallando??? ???
podrias colocar la parte que recibes (en estos momentos no tengo el vb y no puedo probar tu code).
Saludos.
Si es un archivo qeu ocupa mas de 1024 bytes lo tendras que enviar por partes...
Mr. Cuando trabajes con WinSock, debes dividir el archivo en varios bloques para que la información llegue completa.
El código del servidor está mal, así lo único que vas a conseguir es crear un archivo con el primer byte que recibas del cliente. Lo que tienes que hacer es envíar desde el cliente el tamaño del archivo, almacenarlo en el servidor, e ir almacenando en una variable lo que se recibe:
Winsock1.getdata datos
archivo = archivo & datos
if len(archivo) = tamañodelarchivo then
open bla bla bla
end if
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Mr. Cuando trabajes con WinSock, debes dividir el archivo en varios bloques para que la información llegue completa.
tonterías :P