2026-02-02 12:24:50 -08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "network/socket.hpp"
|
2026-02-03 22:24:17 -08:00
|
|
|
#include "network/net_platform.hpp"
|
2026-02-02 12:24:50 -08:00
|
|
|
|
|
|
|
|
namespace wowee {
|
|
|
|
|
namespace network {
|
|
|
|
|
|
|
|
|
|
class TCPSocket : public Socket {
|
|
|
|
|
public:
|
|
|
|
|
TCPSocket();
|
|
|
|
|
~TCPSocket() override;
|
|
|
|
|
|
|
|
|
|
bool connect(const std::string& host, uint16_t port) override;
|
|
|
|
|
void disconnect() override;
|
|
|
|
|
bool isConnected() const override { return connected; }
|
|
|
|
|
|
|
|
|
|
void send(const Packet& packet) override;
|
|
|
|
|
void update() override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
void tryParsePackets();
|
|
|
|
|
size_t getExpectedPacketSize(uint8_t opcode);
|
|
|
|
|
|
2026-02-03 22:24:17 -08:00
|
|
|
socket_t sockfd = INVALID_SOCK;
|
2026-02-02 12:24:50 -08:00
|
|
|
bool connected = false;
|
|
|
|
|
std::vector<uint8_t> receiveBuffer;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
} // namespace network
|
|
|
|
|
} // namespace wowee
|