Commit 49a0880e by NitefullWind

1. 可配置是否启用FMSOCKETHEADER。

parent 5f349cc2
......@@ -17,6 +17,7 @@ FMPVipServer::FMPVipServer() :
{
Listen(23770);
connect(this, &QTcpServer::newConnection, this, &FMPVipServer::onNewConnection);
isNeedSocketHeader = FMPVipSettings::instance()->getIsNeedSocketHeader();
}
void FMPVipServer::Listen(quint16 port)
......@@ -56,15 +57,18 @@ void FMPVipServer::onReadyRead()
{
QByteArray recvData = socket->readAll();
if(isNeedSocketHeader) {
FMSOCKEHEADER header = {0};
memcpy(&header, recvData.data(), sizeof(FMSOCKEHEADER));
if(header.flag != FMSOCKFLAG) {
FMP_WARN() << "Incompatible protocol.";
return;
}
recvData = recvData.mid(sizeof(FMSOCKEHEADER));
}
QByteArray rspData;
dispatcher->doTask(recvData.mid(sizeof(FMSOCKEHEADER)), rspData);
dispatcher->doTask(recvData, rspData);
Write(rspData);
......
......@@ -34,6 +34,8 @@ private:
QTcpSocket *socket;
FMVipDispatcher *dispatcher;
bool isNeedSocketHeader;
};
#endif // FMP_VIP_SERVER_H
......@@ -22,6 +22,11 @@ QString FMPVipSettings::getServerUrl()
return _GetValue(FMP_INIKEY_VIPSERVER).toString();
}
bool FMPVipSettings::getIsNeedSocketHeader()
{
return _GetValue(FMP_INIKEY_NEEDSOCKETHEADER, false).toBool();
}
QVariant FMPVipSettings::_GetValue(const QString &key, QVariant defaultValue)
{
if (_settings) {
......
......@@ -15,6 +15,7 @@ public:
void init(FMPSettingsInterface *settings);
QString getServerUrl();
bool getIsNeedSocketHeader();
private:
explicit FMPVipSettings(QObject *parent = 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment