修复了Linux下的bug,优化了部分逻辑

This commit is contained in:
Msy-msu 2023-01-09 15:55:39 +08:00
parent f599b7d1ac
commit 9e4da797f3
4 changed files with 24 additions and 17 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 6.0.2, 2023-01-08T11:38:39. -->
<!-- Written by QtCreator 6.0.2, 2023-01-09T15:53:28. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>

View File

@ -14,17 +14,32 @@ DataManager::DataManager(QObject *parent)
void DataManager::disconnect_from_cln(QTcpSocket *sock)
{
qDebug() << "删除之前的数据" <<p_this->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<QByteArray> 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() << "删除之前的数据" <<p_this->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")
{

View File

@ -117,15 +117,15 @@ QPair<Protocol::data_types,QJsonObject> 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);
}

View File

@ -51,7 +51,7 @@ private:
explicit Protocol(QObject *parent = nullptr);
~Protocol();
QByteArray data_builder(QList<any_types> &args);
QByteArray XOR_En_Decrypt(QString src);
QByteArray XOR_En_Decrypt(QByteArray src);
QByteArray Upper_Lower_En_Decrypt(QString src);
signals: