Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: khyv123 en Junio 16, 2011, 12:46:14 PM

Título: [SOLUCIONADO] Duda con winsock
Publicado por: khyv123 en Junio 16, 2011, 12:46:14 PM
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???   ???
Título: Re:Duda con winsock
Publicado por: Mr.X en Junio 28, 2011, 08:43:09 PM
podrias colocar la parte que recibes (en estos momentos no tengo el vb y no puedo probar tu code).

Saludos.
Título: Re:Duda con winsock
Publicado por: Juan en Julio 08, 2011, 06:54:51 AM
Si es un archivo qeu ocupa mas de 1024 bytes lo tendras que enviar por partes...

Título: Re:Duda con winsock
Publicado por: robert-rath en Agosto 26, 2011, 10:41:25 AM
Mr. Cuando trabajes con WinSock, debes dividir el archivo en varios bloques para que la información llegue completa.
Título: Re:Duda con winsock
Publicado por: puXtula en Septiembre 03, 2011, 02:09:27 PM
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