packet 수정, client 테스트 코드 추가

This commit is contained in:
2025-05-01 17:44:43 +09:00
parent 4fb5bdd4cb
commit 6622cc8939
3 changed files with 37 additions and 24 deletions

View File

@@ -1,15 +1,31 @@
#include "Socket/TCPSocket.hpp" #include "Socket/TCPSocket.hpp"
#include "Socket/Address.hpp" #include "Socket/Address.hpp"
#include "Socket/Log.hpp" #include "Socket/Log.hpp"
#include "Packet/Packet.hpp"
#include "precomp.hpp" #include "precomp.hpp"
int main() { int main() {
Chattr::TCPSocket sock; Chattr::TCPSocket sock;
sock.init(AF_INET); sock.init(AF_INET6);
Chattr::Address serveraddr(AF_INET, "localhost", 9011); Chattr::Address serveraddr(AF_INET6, "fd8a:5f:3adb:774d:dfae:983f:2e7a:ffba", 9010);
sock.connect(serveraddr); sock.connect(serveraddr);
spdlog::info("Connection established from {}", (std::string)serveraddr); spdlog::info("Connection established from {}", (std::string)serveraddr);
sock.send("Hello, World!", 14, 0);
Chattr::DataPostPacket dataPostPacket;
dataPostPacket.__data.packetType = Chattr::PacketType::PACKET_POST;
dataPostPacket.__data.requestType = Chattr::RequestType::DATA;
dataPostPacket.__data.dataType = Chattr::DataType::TEXT;
memcpy(dataPostPacket.__data.data, "Hello, World!", 14);
//dataPostPacket.__data.packetLength = 8 + 14;
dataPostPacket.__data.packetLength = 2000;
dataPostPacket.convToN();
sock.send(&dataPostPacket.serialized, 1500, 0);
Chattr::ResponsePacket packet;
sock.recv(&packet.serialized, 1500, 0);
packet.convToH();
// sleep(1000000);
} }

View File

@@ -29,9 +29,6 @@ enum class DataType : std::uint8_t {
class alignas(4) Packet { class alignas(4) Packet {
public: public:
Packet() {
memset(serialized, 0, 1500);
}
union { union {
struct { struct {
PacketType packetType; PacketType packetType;
@@ -40,7 +37,7 @@ public:
std::uint16_t packetLength; std::uint16_t packetLength;
std::uint8_t data[1495]; std::uint8_t data[1495];
} __data; } __data;
std::uint8_t serialized[1500]; std::uint8_t serialized[1500] = "";
}; };
std::uint8_t* convToN() { std::uint8_t* convToN() {
__data.packetLength = ::htons(__data.packetLength); __data.packetLength = ::htons(__data.packetLength);
@@ -62,7 +59,7 @@ public:
std::uint16_t packetLength; std::uint16_t packetLength;
std::uint8_t name[]; std::uint8_t name[];
} __data; } __data;
std::uint8_t serialized[1500]; std::uint8_t serialized[1500] = "";
}; };
}; };
@@ -76,7 +73,7 @@ public:
std::uint16_t packetLength; std::uint16_t packetLength;
std::uint8_t name[]; std::uint8_t name[];
} __data; } __data;
std::uint8_t serialized[1500]; std::uint8_t serialized[1500] = "";
}; };
}; };
@@ -91,7 +88,7 @@ public:
std::uint32_t roomCount; std::uint32_t roomCount;
std::uint8_t name[]; std::uint8_t name[];
} __data; } __data;
std::uint8_t serialized[1500]; std::uint8_t serialized[1500] = "";
}; };
std::uint8_t* convToN() { std::uint8_t* convToN() {
__data.packetLength = ::htons(__data.packetLength); __data.packetLength = ::htons(__data.packetLength);
@@ -115,7 +112,7 @@ public:
std::uint16_t packetLength; std::uint16_t packetLength;
std::uint8_t name[]; std::uint8_t name[];
} __data; } __data;
std::uint8_t serialized[1500]; std::uint8_t serialized[1500] = "";
}; };
}; };
@@ -129,7 +126,7 @@ public:
std::uint16_t packetLength; std::uint16_t packetLength;
std::uint8_t data[]; std::uint8_t data[];
} __data; } __data;
std::uint8_t serialized[1500]; std::uint8_t serialized[1500] = "";
}; };
}; };
@@ -143,7 +140,7 @@ public:
std::uint16_t packetLength; std::uint16_t packetLength;
std::uint8_t name[]; std::uint8_t name[];
} __data; } __data;
std::uint8_t serialized[1500]; std::uint8_t serialized[1500] = "";
}; };
}; };
@@ -158,7 +155,7 @@ public:
std::uint16_t destId[4]; std::uint16_t destId[4];
std::uint8_t data[]; std::uint8_t data[];
} __data; } __data;
std::uint8_t serialized[1500]; std::uint8_t serialized[1500] = "";
}; };
std::uint8_t* convToN() { std::uint8_t* convToN() {
__data.packetLength = ::htons(__data.packetLength); __data.packetLength = ::htons(__data.packetLength);
@@ -183,7 +180,7 @@ public:
std::uint16_t packetLength; std::uint16_t packetLength;
std::uint8_t data[]; std::uint8_t data[];
} __data; } __data;
std::uint8_t serialized[1500]; std::uint8_t serialized[1500] = "";
}; };
}; };
@@ -209,9 +206,9 @@ public:
DataType dataType; DataType dataType;
std::uint16_t packetLength; std::uint16_t packetLength;
ResponseStatusCode responseStatusCode; ResponseStatusCode responseStatusCode;
std::uint8_t data[]; std::uint8_t data[1493];
} __data; } __data;
std::uint8_t serialized[1500]; std::uint8_t serialized[1500] = "";
}; };
std::uint8_t* convToN() { std::uint8_t* convToN() {
__data.packetLength = ::htons(__data.packetLength); __data.packetLength = ::htons(__data.packetLength);
@@ -246,7 +243,7 @@ public:
ResponseStatusCode responseStatusCode; ResponseStatusCode responseStatusCode;
std::uint8_t data[]; std::uint8_t data[];
} __data; } __data;
std::uint8_t serialized[1500]; std::uint8_t serialized[1500] = "";
}; };
}; };

View File

@@ -24,10 +24,10 @@
#include "spdlog/spdlog.h" #include "spdlog/spdlog.h"
namespace Chattr { namespace Chattr {
struct _EPOQUE_ { static struct _EPOQUE {
_EPOQUE_() { _EPOQUE() {
EPOQUE = std::chrono::system_clock::now(); EPOQUE = std::chrono::system_clock::now();
} }
std::chrono::system_clock::time_point EPOQUE; std::chrono::system_clock::time_point EPOQUE;
} _EPOQUE_; } __EPOQUE__;
} }