Visual Basic.NET - envio de archivos por red (sockets)

 
Vista:

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:
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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder