Я пишу кроссплатформенную игру с сетевые возможности (с использованием SFML и RakNet ), и я дошел до того момента, когда я скомпилировал сервер на моем сервере Ubuntu и запустил клиент на моем Mac. Вся разработка ведется на моем Mac, поэтому я изначально тестировал сервер на нем, и он работал нормально.
Я отправляю struct
по сети, а затем просто отбрасываю их обратно из char *
в (например) inet :: PlayerAdded
. Теперь это работает нормально (по большей части), но мой вопрос: всегда ли это будет работать? Это кажется очень хрупким подходом. Будет ли структура всегда выкладываться одинаково даже на других платформах, например в Windows? Что бы вы порекомендовали?
#pragma pack(push, 1)
struct Player
{
int dir[2];
int left;
float depth;
float elevation;
float velocity[2];
char character[50];
char username[50];
};
// I have been added to the game and my ID is back
struct PlayerAdded: Packet
{
id_type id;
Player player;
};
#pragma pack(pop)