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"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE QtCreatorProject>
|
<!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>
|
<qtcreator>
|
||||||
<data>
|
<data>
|
||||||
<variable>EnvironmentId</variable>
|
<variable>EnvironmentId</variable>
|
||||||
|
|
|
@ -14,17 +14,32 @@ DataManager::DataManager(QObject *parent)
|
||||||
|
|
||||||
void DataManager::disconnect_from_cln(QTcpSocket *sock)
|
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)
|
void DataManager::recv_from_cln(QByteArray &data, QTcpSocket *sock)
|
||||||
{
|
{
|
||||||
QByteArray data_decrypt = p_this->protocol->data_decrypt(data);
|
QByteArray data_decrypt = p_this->protocol->data_decrypt(data);
|
||||||
|
qDebug() << data_decrypt;
|
||||||
QList<QByteArray> list = data_decrypt.split('\n');
|
QList<QByteArray> list = data_decrypt.split('\n');
|
||||||
|
qDebug() << list;
|
||||||
for (int i = 0; i < list.count(); i++)
|
for (int i = 0; i < list.count(); i++)
|
||||||
{
|
{
|
||||||
QJsonDocument json_data = QJsonDocument::fromJson(list[i]);
|
QJsonDocument json_data = QJsonDocument::fromJson(list[i]);
|
||||||
if (json_data["type"] == "message")
|
if (json_data["type"] == "message")
|
||||||
{
|
{
|
||||||
|
qDebug() << json_data;
|
||||||
if (json_data["to_user"].toString().isEmpty())
|
if (json_data["to_user"].toString().isEmpty())
|
||||||
{
|
{
|
||||||
qDebug() << "收到群发类型的信息,将转发";
|
qDebug() << "收到群发类型的信息,将转发";
|
||||||
|
@ -148,18 +163,7 @@ void DataManager::recv_from_cln(QByteArray &data, QTcpSocket *sock)
|
||||||
qDebug() << "用户注销失败";
|
qDebug() << "用户注销失败";
|
||||||
return;
|
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")
|
else if (json_data["action"] == "update_namelist")
|
||||||
{
|
{
|
||||||
|
|
|
@ -117,11 +117,11 @@ QPair<Protocol::data_types,QJsonObject> Protocol::data_parser(QByteArray data)
|
||||||
return qMakePair(RESPONSE,json_data.object());
|
return qMakePair(RESPONSE,json_data.object());
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray Protocol::XOR_En_Decrypt(QString src)
|
QByteArray Protocol::XOR_En_Decrypt(QByteArray src)
|
||||||
{
|
{
|
||||||
QByteArray result;
|
QByteArray result;
|
||||||
for(auto &i:src)
|
for(auto &i:src)
|
||||||
result.append(i.toLatin1() ^ cipher_word);
|
result.append(i ^ cipher_word);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,8 +155,11 @@ QByteArray Protocol::data_encrypt(QByteArray src)
|
||||||
|
|
||||||
QByteArray Protocol::data_decrypt(QByteArray src)
|
QByteArray Protocol::data_decrypt(QByteArray src)
|
||||||
{
|
{
|
||||||
|
qDebug() << QString(src);
|
||||||
QByteArray result = XOR_En_Decrypt(src);
|
QByteArray result = XOR_En_Decrypt(src);
|
||||||
|
//qDebug() << result;
|
||||||
result = Upper_Lower_En_Decrypt(result);
|
result = Upper_Lower_En_Decrypt(result);
|
||||||
|
//qDebug() << result;
|
||||||
return QByteArray::fromBase64(result);
|
return QByteArray::fromBase64(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ private:
|
||||||
explicit Protocol(QObject *parent = nullptr);
|
explicit Protocol(QObject *parent = nullptr);
|
||||||
~Protocol();
|
~Protocol();
|
||||||
QByteArray data_builder(QList<any_types> &args);
|
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);
|
QByteArray Upper_Lower_En_Decrypt(QString src);
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue