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
|