41 lines
754 B
C++
41 lines
754 B
C++
#ifndef PACKET_H
|
|
#define PACKET_H
|
|
|
|
#include <string>
|
|
#include <cstdint>
|
|
#include <vector>
|
|
#include <winsock2.h>
|
|
#include <ws2tcpip.h>
|
|
|
|
enum PacketType : uint8_t {
|
|
HEARTBEAT = 1,
|
|
JOIN,
|
|
DISCONNECT,
|
|
MOVE,
|
|
CHAT,
|
|
PLAYER_UPDATE,
|
|
SCORE_UPDATE,
|
|
GAME_START,
|
|
GAME_END,
|
|
PING,
|
|
PONG,
|
|
AUTH_REQUEST,
|
|
AUTH_RESPONSE,
|
|
PACKET_MAX
|
|
};
|
|
|
|
struct Packet
|
|
{
|
|
PacketType type;
|
|
std::string data;
|
|
};
|
|
|
|
uint32_t to_network_uint32(uint32_t host);
|
|
uint32_t from_network_uint32(uint32_t net);
|
|
bool send_all(SOCKET sock, const char *data, size_t len);
|
|
bool recv_all(SOCKET sock, char *buffer, size_t len);
|
|
bool sendPacket(SOCKET sock, const Packet &packet);
|
|
bool receivePacket(SOCKET sock, Packet &packet);
|
|
|
|
#endif // PACKET_H
|