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