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/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);
}

View File

@@ -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] = "";
};
};

View File

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