Проблема в строках класса, которые я передаю через сокет

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 сокету?


Ответы (0 шт):