elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  C# - Problema en transferencia de datos con Sockets
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: C# - Problema en transferencia de datos con Sockets  (Leído 18,292 veces)
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: C# - Problema en transferencia de datos con Sockets
« Respuesta #10 en: 16 Marzo 2010, 01:03 am »

Claro, seria algo como

NetworkStreamWriter.Write(BinaryStreamReader.Read()) :xD


En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: C# - Problema en transferencia de datos con Sockets
« Respuesta #11 en: 16 Marzo 2010, 05:46 am »

Seeeeeeeeeeeeeee  ;-)


En línea

_LooSeR_

Desconectado Desconectado

Mensajes: 48



Ver Perfil
Re: C# - Problema en transferencia de datos con Sockets
« Respuesta #12 en: 16 Marzo 2010, 13:42 pm »

Ok, ya lo tengo hecho. Al final lo he hecho algo más sencillo y no con tantos Streams como dije xD

Al pasar la longitud como un string me volvia a dar error algunas veces, con que el formato no era adecuado para luego ser convertido a "int".

De modo que lo he pasado como 4 bytes, para un int32

Por si a alguien le sirve dejo aqui como lo he hecho:

Cliente              
                
Código
  1.                //Leemos el contenido del fichero
  2.                byte[] contenido = File.ReadAllBytes(ruta);
  3.  
  4.                //Obtenemos la longitud en bytes del fichero leido
  5.                byte[] longitud = BitConverter.GetBytes(contenido.Length);
  6.  
  7.                //Pasamos la cantidad de bytes del fichero
  8.                NWSServer.Write(longitud, 0, longitud.Length);
  9.                SWServer.Flush();
  10.  
  11.                //Pasamos el contenido del fichero
  12.                NWSServer.Write(contenido, 0, contenido.Length);
  13.                NWSServer.Flush();


Servidor
                
Código
  1.                //Leemos la longitud del fichero que estará en un int32bits (4bytes)
  2.                byte[] longitud = new byte[4];
  3.  
  4.                NWSCliente.Read(longitud, 0, longitud.Length);
  5.  
  6.                int size = BitConverter.ToInt32(longitud, 0);
  7.  
  8.  
  9.                //Reservamos el espacio requerido
  10.                byte[] contenido = new byte[size];
  11.  
  12.                //Leemos el contenido del fichero
  13.                NWSCliente.Read(contenido, 0, size);
  14.  
  15.                //Creamos el fichero
  16.                FileStream fs = new FileStream(ruta_destino, FileMode.Create, FileAccess.Write);
  17.  
  18.                //Escribimos los datos en él
  19.                fs.Write(contenido, 0, size);
  20.                fs.Close();

Saludos!
« Última modificación: 16 Marzo 2010, 13:49 pm por _LooSeR_ » En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: C# - Problema en transferencia de datos con Sockets
« Respuesta #13 en: 16 Marzo 2010, 14:20 pm »

Que bueno!, así es...

Una pequeña crítica constructiva:

- Que NWSServer.Write() nada más pida el byte array, en ese método dentro es que vas a programar para que sea desde 0 hasta el total.

- Deja esa sobrecarga actual también.

- Hazte otra más para enviar Strings.

Quedaría algo asi.

Código:
NWSServer.Write(byte[]);
NWSServer.Write(byte[], int, int);
NWSServer.Write(string);

Un saludo!
En línea

katupeku

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: C# - Problema en transferencia de datos con Sockets
« Respuesta #14 en: 13 Octubre 2011, 05:40 am »

Buenas, he estado dando muchas vueltas y leyendo bastante sobre socket, pero la verdad es que todavia hay cosas que se me escapan, logre hacer un programa que envia archivos pequeños de menos de unos 3 o 4 Mb, si me pudieses ayudar con el tema de el directorio, te lo agradeceria.
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda sobre transferencia de datos
PHP
JAJAcker 1 2,627 Último mensaje 10 Mayo 2011, 22:20 pm
por WHK
Transferencia de datos super lenta
Mac OS X
ipcres 4 11,005 Último mensaje 16 Julio 2011, 13:05 pm
por ipcres
Ayuda de transferencia de datos en ASP.NET
.NET (C#, VB.NET, ASP)
jacj0102 2 3,189 Último mensaje 5 Agosto 2011, 02:17 am
por jacj0102
Transferencia de datos de Pc a Pc
Dudas Generales
Zorronde 2 3,389 Último mensaje 25 Noviembre 2011, 16:55 pm
por zhyzura
Motorola Solutions invierte en drones con transferencia segura de datos en ...
Noticias
wolfbcn 0 1,049 Último mensaje 25 Marzo 2015, 21:25 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines