envio de archivos por red (sockets)
Publicado por nahuel (2 intervenciones) el 04/04/2016 03:57:19
bueno gente necesito ayuda por favor.
tengo un cliente servidor, hice un programa solo de archivos y funciona bien. hice otro para enviar texto y funciona bien. Pero cuando junto todo el codigo en un solo programa no funciona.
En el servidor tengo:
ahi recibo el texto, en donde descompongo y si contiene la palabra file(nombre) llamo a un modulo:
RecibirArchivos(nombre, extencion)
en RecibirArchivos(nombre, extencion) ()
preparo el path con el nombre y luego lo recibo
por ultimo aclaro que en el cliente, el buffer tambien se va calculando el tamaño del paquete. Se envia de a 1024 hasta el ultimo que manda justo la cantidad de bytes coorespondiente.
como resultado final me llegan los archivos con el nombre que quiero y el peso como el original pero vacios, sin nada adentro o erroneos no se.
si alguien me ayuda muchas gracias
tengo un cliente servidor, hice un programa solo de archivos y funciona bien. hice otro para enviar texto y funciona bien. Pero cuando junto todo el codigo en un solo programa no funciona.
En el servidor tengo:
1
2
3
4
5
6
CLIENTES = server.AcceptTcpClient
NS = CLIENTES.GetStream
ReDim bytes(tamaño)
NS.Read(bytes, 0, tamaño)
returndata = Encoding.UTF8.GetString(bytes)
ListBox1.Items.Add(returndata)
ahi recibo el texto, en donde descompongo y si contiene la palabra file(nombre) llamo a un modulo:
RecibirArchivos(nombre, extencion)
en RecibirArchivos(nombre, extencion) ()
preparo el path con el nombre y luego lo recibo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dim ARCHIVORECIBIDO As Byte() = New Byte(1024) {}
Dim BYTESRECIBIDOS As Integer
Try
CLIENTES = server.AcceptTcpClient
NS = CLIENTES.GetStream
Dim TOTALBYTESRECIBIDOS As Integer = 0
Dim FS As New FileStream(FICHERORECIBIDO, FileMode.OpenOrCreate, FileAccess.Write)
While (AYUDAENLINEA(BYTESRECIBIDOS, NS.Read(ARCHIVORECIBIDO, 0, ARCHIVORECIBIDO.Length))) > 0
FS.Write(ARCHIVORECIBIDO, 0, BYTESRECIBIDOS)
TOTALBYTESRECIBIDOS = TOTALBYTESRECIBIDOS + BYTESRECIBIDOS
End While
FS.Close()
NS.Close()
CLIENTES.Close()
ListBox1.Items.Add("recivido")
Catch ex As Exception
MsgBox(ex.Message)
End Try
por ultimo aclaro que en el cliente, el buffer tambien se va calculando el tamaño del paquete. Se envia de a 1024 hasta el ultimo que manda justo la cantidad de bytes coorespondiente.
como resultado final me llegan los archivos con el nombre que quiero y el peso como el original pero vacios, sin nada adentro o erroneos no se.
si alguien me ayuda muchas gracias
Valora esta pregunta


0