feat: c++ pragma 방식 => protocol buffer로 직렬화 수정 및 클라이언트 python gui 앱으로 변경

This commit is contained in:
bumpsoo 2026-02-08 14:59:16 +09:00
parent a88b22b177
commit cd192d4ec4
14 changed files with 305 additions and 371 deletions

View file

@ -1,11 +1,14 @@
#pragma once
#include "Packet.h"
#include <atomic>
#include <boost/asio.hpp>
#include <string>
#include <thread>
namespace google::protobuf {
class Message;
}
using boost::asio::ip::tcp;
class BaseClient {
@ -15,20 +18,10 @@ public:
virtual ~BaseClient() = default;
void SendPacket(PacketID id, const void *payload = nullptr,
size_t payloadSize = 0);
void SendPacket(PacketID id, const google::protobuf::Message *pkt = nullptr);
bool ReceiveHeader(PacketHeader &header);
template <typename T> bool ReceivePayload(T &payload) {
try {
boost::asio::read(socket_, boost::asio::buffer(&payload, sizeof(T)));
return true;
} catch (...) {
return false;
}
}
bool Login(const std::string &nickname);
// 비동기 수신 시작
@ -48,8 +41,8 @@ protected:
void ReceiveLoop(std::stop_token stopToken);
void HandlePacket(const PacketHeader &header);
void HandleUpgradeResult();
void HandleSellResult();
void HandleUpgradeResult(const PacketHeader &header);
void HandleSellResult(const PacketHeader &header);
};
class InteractiveClient : public BaseClient {