• Domingo 22 de Diciembre de 2024, 04:05

Autor Tema:  Envio de estructura mediante Sockets UDP  (Leído 2697 veces)

nix2008

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Envio de estructura mediante Sockets UDP
« en: Miércoles 12 de Noviembre de 2008, 10:16 »
0
Hola!

Estoy programando una aplicación en C# que utiliza sockets udp. Necesito enviar una estructura que yo misma he declarado.

public struct FromData
{

public bool bConnection;
public int iValorDem;
......
} data_escac;

Para enviar necesito utilizar la funcion sendTo, lo hago de la siguiente manera:

this.data_escac = data_escac;
byte[] data = new byte[1024];
data = Encoding.GetBytes(this.data_escac);
server.SendTo(data, data.Length, SocketFlags.None, ip);


pero la función SendTo envía un char[], asi que no se como hacer para enviarlo. ¿Hay alguna forma de convertir esa estructura en un char []? ¿Si se pudiera hacer utilizando punteros, como se haria?.

Muchas graciasss
Si alguien me pudiese mostrar un ejemplo se lo agradecería.

santila

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Envio de estructura mediante Sockets UDP
« Respuesta #1 en: Jueves 26 de Marzo de 2009, 11:40 »
0
conseguiste enviar estructuras por sockets??? como lo hiciste?
gracias...

santila

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Envio de estructura mediante Sockets UDP
« Respuesta #2 en: Jueves 26 de Marzo de 2009, 12:46 »
0
ya lo he conseguido!

        public struct DataSocket
        {
            public int function;
            public int n_rutas;
            public char[] ruta_conf;
        };

         public int SendData()
        {
            DataSocket ds1 = new DataSocket();
            ds1.function = 1;
            ds1.n_rutas = 2;
            ds1.ruta_conf = new char[300];
            ds1.ruta_conf = "c:\cacatua".ToCharArray();
            sendSocket.Connect(Ep);

            MemoryStream buffer = new MemoryStream(1023);
            BinaryWriter escritor = new BinaryWriter(buffer);
            escritor.Write((int)ds1.function);
            escritor.Write((int)ds1.n_rutas);
            escritor.Write(ds1.ruta_conf);
            sendSocket.Send(buffer.GetBuffer());
     
            return 0;
        }

nix2008

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Envio de estructura mediante Sockets UDP
« Respuesta #3 en: Jueves 26 de Marzo de 2009, 14:14 »
0
Muchas gracias  :good: