forked from yydcaib/TCPServer
修复了Linux下的bug,优化了部分逻辑
This commit is contained in:
parent
f599b7d1ac
commit
9e4da797f3
|
@ -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>
|
||||
|
|
|
@ -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")
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
Loading…
Reference in New Issue