• Sábado 14 de Diciembre de 2024, 20:45

Autor Tema:  Puedo enviar struct por medio de sockets?  (Leído 2646 veces)

witchyfairy

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Puedo enviar struct por medio de sockets?
« en: Domingo 26 de Julio de 2009, 19:07 »
0
Hola he estado viendo que en los recv y send de los sockets en windows puedes enviar y recibir solo datos tipo char pero yo necesito pasar de el servidor a el cliente estructuras y no se como hacerlo me pueden ayudar cone so por fa  :beer:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puedo enviar struct por medio de sockets?
« Respuesta #1 en: Domingo 26 de Julio de 2009, 20:25 »
0
Con un simple casting podes enviar cualquier cosa (para eso esta el tercer parametro que indica el tamaño de lo enviado) B)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

witchyfairy

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Puedo enviar struct por medio de sockets?
« Respuesta #2 en: Domingo 26 de Julio de 2009, 21:41 »
0
Hola amiguito Idol  :lol:  muchas gracias por contestar mira lo que quiero pasarle a mi socket es lo siguiente

Código: C++
  1. vector <typedef struct nodo> listas;
  2. .
  3. .
  4. .
  5. .
  6. listas.push_back();
  7.         if (existe == 1)
  8.         {
  9.         ShowMessage("EXISTE Y LA CONTRASEÑA ES CORRECTA");
  10.         listas.back().User = usua;
  11.         listas.back().Nick = usua;
  12.         listas.back().Idioma = idi;
  13.         listas.back().Port =portclient;
  14.         listas.back().Hilo = lect_con;
  15.         listas.back().DireccionCliente = DireccionLocal;
  16.         listas.back().SockConexion = RemoteSocket;
  17.        //es una lista que esta contenida en un vector segun yo lo intente hacer asi pero me marca error :S se que estoy haciendo algo mal perono se que ...
  18.         for(int con =0; con<= listas.size(); con++){
  19.         send(RemoteSocket,(vector <typedef struct nodo> *)&listas.at(con),listas.size());
  20.         }
  21.  
  22.  
  23.  
Ojala puedas ayudarme, por cierto muchas gracias por contestar todas mis dudas te estas ganando que te escriba un agradecimiento especial en mi trabajo final de la escuela, je je je me has ayudado mas que mis asesores  :good:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puedo enviar struct por medio de sockets?
« Respuesta #3 en: Domingo 26 de Julio de 2009, 22:08 »
0
Lo que intentas enviar YA es un nodo, el casting lo tenes que hacer al tipo de dato que necesita la funcion, es decir puntero a char y el tamaño es el del nodo que envies, no el de la lista:

Código: Text
  1. send(RemoteSocket, (char*)&listas.at(con), sizeof(nodo));
  2.  

PD. El bucle tiene que ser a < size().

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.