From 9e4da797f39e1025337e050b7ef5267849f2eb81 Mon Sep 17 00:00:00 2001 From: Msy-msu <2200456405@qq.com> Date: Mon, 9 Jan 2023 15:55:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86Linux=E4=B8=8B?= =?UTF-8?q?=E7=9A=84bug=EF=BC=8C=E4=BC=98=E5=8C=96=E4=BA=86=E9=83=A8?= =?UTF-8?q?=E5=88=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TcpServer.pro.user | 2 +- datamanager.cpp | 28 ++++++++++++++++------------ protocol.cpp | 9 ++++++--- protocol.h | 2 +- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/TcpServer.pro.user b/TcpServer.pro.user index d9ff006..f0024c8 100644 --- a/TcpServer.pro.user +++ b/TcpServer.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/datamanager.cpp b/datamanager.cpp index 886ec78..769c589 100644 --- a/datamanager.cpp +++ b/datamanager.cpp @@ -14,17 +14,32 @@ DataManager::DataManager(QObject *parent) void DataManager::disconnect_from_cln(QTcpSocket *sock) { + qDebug() << "删除之前的数据" <online_name_list; + for (int i = 0; i < p_this->online_socket_list.length(); i++) + { + if (p_this->online_socket_list.at(i) == sock) + { + p_this->online_name_list.removeAt(i); + p_this->online_socket_list.removeAt(i); + break; + } + } + qDebug() << "删除之后的数据" << p_this->online_name_list; + p_this->update_namelist(sock); } void DataManager::recv_from_cln(QByteArray &data, QTcpSocket *sock) { QByteArray data_decrypt = p_this->protocol->data_decrypt(data); + qDebug() << data_decrypt; QList list = data_decrypt.split('\n'); + qDebug() << list; for (int i = 0; i < list.count(); i++) { QJsonDocument json_data = QJsonDocument::fromJson(list[i]); if (json_data["type"] == "message") { + qDebug() << json_data; if (json_data["to_user"].toString().isEmpty()) { qDebug() << "收到群发类型的信息,将转发"; @@ -148,18 +163,7 @@ void DataManager::recv_from_cln(QByteArray &data, QTcpSocket *sock) qDebug() << "用户注销失败"; return; } - qDebug() << "删除之前的数据" <online_name_list; - for (int i = 0; i < p_this->online_name_list.length(); i++) - { - if (p_this->online_name_list.at(i) == username) - { - p_this->online_name_list.removeAt(i); - p_this->online_socket_list.removeAt(i); - break; - } - } - qDebug() << "删除之后的数据" << p_this->online_name_list; - p_this->update_namelist(sock); + } else if (json_data["action"] == "update_namelist") { diff --git a/protocol.cpp b/protocol.cpp index a24a9a4..e9c7602 100644 --- a/protocol.cpp +++ b/protocol.cpp @@ -117,15 +117,15 @@ QPair Protocol::data_parser(QByteArray data) return qMakePair(RESPONSE,json_data.object()); } -QByteArray Protocol::XOR_En_Decrypt(QString src) +QByteArray Protocol::XOR_En_Decrypt(QByteArray src) { QByteArray result; for(auto &i:src) - result.append(i.toLatin1() ^ cipher_word); + result.append(i ^ cipher_word); return result; } -QByteArray Protocol::Upper_Lower_En_Decrypt(QString src) +QByteArray Protocol::Upper_Lower_En_Decrypt(QString src) { QByteArray result; for(auto &i:src) @@ -155,8 +155,11 @@ QByteArray Protocol::data_encrypt(QByteArray src) QByteArray Protocol::data_decrypt(QByteArray src) { + qDebug() << QString(src); QByteArray result = XOR_En_Decrypt(src); + //qDebug() << result; result = Upper_Lower_En_Decrypt(result); + //qDebug() << result; return QByteArray::fromBase64(result); } diff --git a/protocol.h b/protocol.h index b6ccef1..3e21191 100644 --- a/protocol.h +++ b/protocol.h @@ -51,7 +51,7 @@ private: explicit Protocol(QObject *parent = nullptr); ~Protocol(); QByteArray data_builder(QList &args); - QByteArray XOR_En_Decrypt(QString src); + QByteArray XOR_En_Decrypt(QByteArray src); QByteArray Upper_Lower_En_Decrypt(QString src); signals: