feat: c++ pragma 방식 => protocol buffer로 직렬화 수정 및 클라이언트 python gui 앱으로 변경
This commit is contained in:
parent
a88b22b177
commit
cd192d4ec4
14 changed files with 305 additions and 371 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue