Проблема в строках класса, которые я передаю через сокет
class JoinPlayerPacket {
public:
PacketType type;
const char* playerId; // превращается в непонятные символы после передачи через сокет
};
// SERVER
JoinPlayerPacket packet;
packet.playerId = "maxrskiy";
send(sock, (char*)packet, sizeof(packet), 0);
// CLIENT
LeavePlayerPacket buf;
int bytesReceived = recv(sock, (char*)&buf, 4096, 0);
cout << buf.playerId << endl; // отображает искаженные символы
У меня возникла проблема, когда я пытался передать класс, в котором есть переменная со строкой по сокету, строка, на стороне которой я передаю класс, была деформирована, то есть превратилась в непонятные символы. Как этого избежать? Я использую TCP-сокет. Можно пример кода как правильно передавать объекты классов по TCP сокету?