SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: witchyfairy en Domingo 26 de Julio de 2009, 19:07

Título: Puedo enviar struct por medio de sockets?
Publicado por: witchyfairy en Domingo 26 de Julio de 2009, 19:07
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:
Título: Re: Puedo enviar struct por medio de sockets?
Publicado por: Eternal Idol en Domingo 26 de Julio de 2009, 20:25
Con un simple casting podes enviar cualquier cosa (para eso esta el tercer parametro que indica el tamaño de lo enviado) B)
Título: Re: Puedo enviar struct por medio de sockets?
Publicado por: witchyfairy en Domingo 26 de Julio de 2009, 21:41
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:
Título: Re: Puedo enviar struct por medio de sockets?
Publicado por: Eternal Idol en Domingo 26 de Julio de 2009, 22:08
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().