From 6622cc8939dff9adae7929945faf3537651f6e19 Mon Sep 17 00:00:00 2001 From: HappyTanuki Date: Thu, 1 May 2025 17:44:43 +0900 Subject: [PATCH] =?UTF-8?q?packet=20=EC=88=98=EC=A0=95,=20client=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Client/src/client.cpp | 22 +++++++++++++++++++--- include/Packet/Packet.hpp | 27 ++++++++++++--------------- include/precomp.hpp | 12 ++++++------ 3 files changed, 37 insertions(+), 24 deletions(-) diff --git a/Client/src/client.cpp b/Client/src/client.cpp index 8a04a56..147edce 100644 --- a/Client/src/client.cpp +++ b/Client/src/client.cpp @@ -1,15 +1,31 @@ #include "Socket/TCPSocket.hpp" #include "Socket/Address.hpp" #include "Socket/Log.hpp" +#include "Packet/Packet.hpp" #include "precomp.hpp" int main() { 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); 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); } \ No newline at end of file diff --git a/include/Packet/Packet.hpp b/include/Packet/Packet.hpp index 33bf86b..00ef9a2 100644 --- a/include/Packet/Packet.hpp +++ b/include/Packet/Packet.hpp @@ -29,9 +29,6 @@ enum class DataType : std::uint8_t { class alignas(4) Packet { public: - Packet() { - memset(serialized, 0, 1500); - } union { struct { PacketType packetType; @@ -40,7 +37,7 @@ public: std::uint16_t packetLength; std::uint8_t data[1495]; } __data; - std::uint8_t serialized[1500]; + std::uint8_t serialized[1500] = ""; }; std::uint8_t* convToN() { __data.packetLength = ::htons(__data.packetLength); @@ -62,7 +59,7 @@ public: std::uint16_t packetLength; std::uint8_t name[]; } __data; - std::uint8_t serialized[1500]; + std::uint8_t serialized[1500] = ""; }; }; @@ -76,7 +73,7 @@ public: std::uint16_t packetLength; std::uint8_t name[]; } __data; - std::uint8_t serialized[1500]; + std::uint8_t serialized[1500] = ""; }; }; @@ -91,7 +88,7 @@ public: std::uint32_t roomCount; std::uint8_t name[]; } __data; - std::uint8_t serialized[1500]; + std::uint8_t serialized[1500] = ""; }; std::uint8_t* convToN() { __data.packetLength = ::htons(__data.packetLength); @@ -115,7 +112,7 @@ public: std::uint16_t packetLength; std::uint8_t name[]; } __data; - std::uint8_t serialized[1500]; + std::uint8_t serialized[1500] = ""; }; }; @@ -129,7 +126,7 @@ public: std::uint16_t packetLength; std::uint8_t data[]; } __data; - std::uint8_t serialized[1500]; + std::uint8_t serialized[1500] = ""; }; }; @@ -143,7 +140,7 @@ public: std::uint16_t packetLength; std::uint8_t name[]; } __data; - std::uint8_t serialized[1500]; + std::uint8_t serialized[1500] = ""; }; }; @@ -158,7 +155,7 @@ public: std::uint16_t destId[4]; std::uint8_t data[]; } __data; - std::uint8_t serialized[1500]; + std::uint8_t serialized[1500] = ""; }; std::uint8_t* convToN() { __data.packetLength = ::htons(__data.packetLength); @@ -183,7 +180,7 @@ public: std::uint16_t packetLength; std::uint8_t data[]; } __data; - std::uint8_t serialized[1500]; + std::uint8_t serialized[1500] = ""; }; }; @@ -209,9 +206,9 @@ public: DataType dataType; std::uint16_t packetLength; ResponseStatusCode responseStatusCode; - std::uint8_t data[]; + std::uint8_t data[1493]; } __data; - std::uint8_t serialized[1500]; + std::uint8_t serialized[1500] = ""; }; std::uint8_t* convToN() { __data.packetLength = ::htons(__data.packetLength); @@ -246,7 +243,7 @@ public: ResponseStatusCode responseStatusCode; std::uint8_t data[]; } __data; - std::uint8_t serialized[1500]; + std::uint8_t serialized[1500] = ""; }; }; diff --git a/include/precomp.hpp b/include/precomp.hpp index 0082246..005a5aa 100644 --- a/include/precomp.hpp +++ b/include/precomp.hpp @@ -24,10 +24,10 @@ #include "spdlog/spdlog.h" namespace Chattr { - struct _EPOQUE_ { - _EPOQUE_() { - EPOQUE = std::chrono::system_clock::now(); - } - std::chrono::system_clock::time_point EPOQUE; - } _EPOQUE_; +static struct _EPOQUE { + _EPOQUE() { + EPOQUE = std::chrono::system_clock::now(); + } + std::chrono::system_clock::time_point EPOQUE; +} __EPOQUE__; } \ No newline at end of file