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


 


Tema destacado: Introducción a  Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Transferencia de archivos, usando un servidor y cliente [C#]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Transferencia de archivos, usando un servidor y cliente [C#]  (Leído 14,096 veces)
SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Transferencia de archivos, usando un servidor y cliente [C#]
« en: 10 Junio 2006, 22:45 »

Hola a todos, obviamente busqué informacion antes de postear, pero solo he encontrado como transferir archivos usando webservices o ftp, pero lo que yo quiero hacer es un sistema parecido a un chat donde el cliente intente descargar un archivo desde el servidor. Como un chat pero en vez de transferir cadenas de texto que transfiera archivos.
Sigo buscando información, ya he encontrado libros que me podrian ayudar pero estan todos en ingles y nosé si esten en mi pais... pero como último recurso los importo.

Pensamiento raro: Se me ocurre la teoria, imagino que debo leer los bytes del archivo y llevarlos al cliente, pero no encuentro codigos que hagan eso para corregir mis ideas.


« Última modificación: 10 Junio 2006, 22:54 por SeniorX » En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Re: Transferencia de archivos, usando un servidor y cliente [C#]
« Respuesta #1 en: 11 Junio 2006, 05:25 »

Bueno estoy dejando volar la imaginacion, estoy usando UDP, lo que hace el programa es tomar un archivo de texto, leerlo obtiene los bytes y luego los envia al destino. Estoy usando el mismo codigo que hice para hacer un chat en mi red local, solo que ahora agrego System.IO; y hago que lea un archivo:
Código:
private void cmdEnviar_Click(object sender, EventArgs e)
        {
            //Contiene la dirección de Broadcast y el puerto utilizado
            IPEndPoint DirecciónDestino = new IPEndPoint(IPAddress.Broadcast, 20145);
            //Buffer que guardará los datos hasta que se envíen
            string nombre = txtMensaje.Text;
            string cadena;
            StreamReader fl = null;
            txtMensaje.SelectAll();
            try
            {
                fl = new StreamReader(nombre);         

                do
                {
                    cadena = fl.ReadLine();           
                   
                }
                while (cadena != null);
               
            }
            finally
            {
                if (fl != null)
                    fl.Close();
            }
            //Acá intento mandar los bytes
            byte[] DatosBytes = Encoding.Default.GetBytes(cadena);
           
            //Envía los datos           
            ElSocket.SendTo(DatosBytes, DatosBytes.Length, SocketFlags.None, DirecciónDestino);

Y me dice:
Citar
System.ArgumentNullException was unhandled
  Message="String reference not set to an instance of a String.\r\nParameter name: s"
  Source="mscorlib"
  ParamName="s"
  StackTrace:
       at System.Text.Encoding.GetBytes(String s)
       at Broadcast_utilizando_UDP.frmMain.cmdEnviar_Click(Object sender, EventArgs e) in C:\Documents and Settings\pietro\Escritorio\C#\Sockets\Broadcast utilizando UDP\frmMain.cs:line 68
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.PerformClick()
       at System.Windows.Forms.Form.ProcessDialogKey(Keys keyData)
       at System.Windows.Forms.TextBoxBase.ProcessDialogKey(Keys keyData)
       at System.Windows.Forms.Control.PreProcessMessage(Message& msg)
       at System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg)
       at System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)
       at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FPreTranslateMessage(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(Form mainForm)
       at Broadcast_utilizando_UDP.Program.Main() in C:\Documents and Settings\pietro\Escritorio\C#\Sockets\Broadcast utilizando UDP\Program.cs:line 16
       at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()

Mirando el error, lo primero que hice fue ver que pasa con la variable s y sorpresa!: No existe  >:(

Ojalá me puedan ayudar con esto.
Muchas gracias de antemano


En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Re: Transferencia de archivos, usando un servidor y cliente [C#]
« Respuesta #2 en: 11 Junio 2006, 19:44 »

nadie  :(?? y saben donde me podrian ayudar, he buscado foros de csharp pero todos estan muy poco activos...
En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines