Tengo un problema con los socket cuando envió y recibo, esto es porque tengo punteros en la clase que estoy enviando, entonces al recibirla me da error de:
Segmentation fault;
esta es la situación que tengo:
Clase a enviar:
#define TAMANO_MENSAJE 50
class Mensaje {
private:
//char mensaje[TAMANO_MENSAJE];
string mensaje;
public:
Mensaje();
Mensaje(char);
string getMensaje(){return mensaje;}
};
Esta es la función que envía:
int Sender::SendMensaje(Mensaje &pMensaje){
return send(this->host->getSocket(), &pMensaje , sizeof(pMensaje) ,0);
}
Esta es la función que recibe:
Mensaje Receiver::RecvMensaje(){
Mensaje rm;
recv(host->getSocket(), &rm, sizeof(rm), 0);
return rm;
}
El problema esta en el string, ya que es un puntero, puedo enviar el tamaño exacto del paquete del lado del cliente, pero cuando tengo que recibirlo no se de que tamaño es el paquete, si alguien me puede ayudar!!!