Programación General > C/C++

 Puedo enviar struct por medio de sockets?

(1/1)

witchyfairy:
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:
Con un simple casting podes enviar cualquier cosa (para eso esta el tercer parametro que indica el tamaño de lo enviado) B)

witchyfairy:
Hola amiguito Idol  :lol:  muchas gracias por contestar mira lo que quiero pasarle a mi socket es lo siguiente


--- Código: C++ ---vector <typedef struct nodo> listas;....listas.push_back();        if (existe == 1)        {        ShowMessage("EXISTE Y LA CONTRASEÑA ES CORRECTA");        listas.back().User = usua;        listas.back().Nick = usua;        listas.back().Idioma = idi;        listas.back().Port =portclient;        listas.back().Hilo = lect_con;        listas.back().DireccionCliente = DireccionLocal;        listas.back().SockConexion = RemoteSocket;       //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 ...        for(int con =0; con<= listas.size(); con++){        send(RemoteSocket,(vector <typedef struct nodo> *)&listas.at(con),listas.size());        }    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:
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 ---send(RemoteSocket, (char*)&listas.at(con), sizeof(nodo)); 
PD. El bucle tiene que ser a < size().

Navegación

[0] Índice de Mensajes

Ir a la versión completa