重构了socket发送结构

This commit is contained in:
zw
2025-06-19 13:24:45 +08:00
parent 8070b3392e
commit c51da2e506
4 changed files with 123 additions and 301 deletions

View File

@@ -9,51 +9,6 @@
#include "client2.h"
#include "PQSMsg.h"
// <20><><EFBFBD>ɴ<EFBFBD>Э<EFBFBD><D0AD>ͷ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD>
std::vector<unsigned char> generate_binary_message(
uint16_t msg_type,
const std::vector<unsigned char>& payload)
{
std::vector<unsigned char> packet;
// Э<><D0AD>ͷ (4<>ֽ<EFBFBD>)
packet.push_back(0xAA); // <20><>ʼ<EFBFBD><CABC>־
packet.push_back((msg_type >> 8) & 0xFF); // <20><>Ϣ<EFBFBD><CFA2><EFBFBD>͸<EFBFBD><CDB8>ֽ<EFBFBD>
packet.push_back(msg_type & 0xFF); // <20><>Ϣ<EFBFBD><CFA2><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD>
uint8_t length = payload.size();
packet.push_back(length); // <20>غɳ<D8BA><C9B3><EFBFBD>
// <20>غ<EFBFBD><D8BA><EFBFBD><EFBFBD><EFBFBD>
packet.insert(packet.end(), payload.begin(), payload.end());
// У<><D0A3>λ (1<>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>)
uint8_t checksum = 0;
for (auto byte : packet) {
checksum ^= byte;
}
packet.push_back(checksum);
return packet;
}
// ʹ<><CAB9>ʾ<EFBFBD><CABE>
void send_message(client_context_t* ctx) {
// <20><><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD><EFBFBD><EFBFBD>
std::vector<unsigned char> payload = {
0x01, 0x02, 0x03, 0x04 // ʾ<><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>0x1001)
auto binary_data = generate_binary_message(0x1001, payload);
// ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
unsigned char* binary_array = binary_data.data();
size_t data_size = binary_data.size();
// <20>˴<EFBFBD><CBB4>ɵ<EFBFBD><C9B5>÷<EFBFBD><C3B7>ͺ<EFBFBD><CDBA><EFBFBD>
send_binary_data(ctx, binary_array, data_size);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MAC<41><43>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void GetMAC(const std::string& strMAC, std::vector<unsigned char>& packet, size_t startIndex) {
// <20>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD>пո<D0BF><D5B8>Ͷ̺<CDB6><CCBA><EFBFBD>