做了一些修改

This commit is contained in:
Msy-msu 2023-01-15 17:18:01 +08:00
parent f0fe51fc54
commit 0875d5ec0b
5 changed files with 12 additions and 4 deletions

View File

@ -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-14T13:53:08. --> <!-- Written by QtCreator 6.0.2, 2023-01-15T17:16:52. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
@ -240,8 +240,8 @@
<valuelist type="QVariantList" key="CustomOutputParsers"/> <valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value> <value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:\Users\25761\Desktop\TcpServer\TcpServer.pro</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/25761/Desktop/TcpServer/TcpServer.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">C:\Users\25761\Desktop\TcpServer\TcpServer.pro</value> <value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">C:/Users/25761/Desktop/TcpServer/TcpServer.pro</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value> <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value> <value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>

View File

@ -7,6 +7,7 @@ DataManager::DataManager(QObject *parent)
database = DataBase::getInstance(); database = DataBase::getInstance();
protocol = Protocol::getInstance(); protocol = Protocol::getInstance();
server = TCPServer::getInstance(); server = TCPServer::getInstance();
server->setTimeOut(500);
server->configAndrun(); server->configAndrun();
server->setCallBack(disconnect_from_cln); server->setCallBack(disconnect_from_cln);
server->setCallBack(recv_from_cln); server->setCallBack(recv_from_cln);

Binary file not shown.

View File

@ -84,7 +84,7 @@ void TCPServer::TCPReadPeer()
while(sock->bytesAvailable())//循环接收 while(sock->bytesAvailable())//循环接收
{ {
recv += sock->readAll(); recv += sock->readAll();
if (!sock->waitForReadyRead(500))//超时停止接收 if (!sock->waitForReadyRead(_timeout))//超时停止接收
{ {
/*QString error = sock->errorString(); /*QString error = sock->errorString();
string error_t = error.toStdString(); string error_t = error.toStdString();
@ -100,6 +100,11 @@ void TCPServer::TCPReadPeer()
recvcallback(recv,sock); recvcallback(recv,sock);
} }
void TCPServer::setTimeOut(int timeout)
{
_timeout = timeout;
}
void TCPServer::setCallBack(void (*callback)(QByteArray &data, QTcpSocket* socket)) void TCPServer::setCallBack(void (*callback)(QByteArray &data, QTcpSocket* socket))
{ {
recvcallback = callback; recvcallback = callback;

View File

@ -16,10 +16,12 @@ public:
void setCallBack(void (*callback)(QByteArray &data,QTcpSocket* socket));//Qt的信号-槽机制实际就是回调函数, void setCallBack(void (*callback)(QByteArray &data,QTcpSocket* socket));//Qt的信号-槽机制实际就是回调函数,
void setCallBack(void (*callback)(QTcpSocket* socket)); //此处为练手,不使用该机制 void setCallBack(void (*callback)(QTcpSocket* socket)); //此处为练手,不使用该机制
void sendToclient(QTcpSocket *socket,QByteArray data); void sendToclient(QTcpSocket *socket,QByteArray data);
void setTimeOut(int timeout);
void stopRun(); void stopRun();
private: private:
explicit TCPServer(QObject *parent = nullptr); explicit TCPServer(QObject *parent = nullptr);
~TCPServer(); ~TCPServer();
int _timeout = 20;
QString listen_addr = "0.0.0.0"; QString listen_addr = "0.0.0.0";
qint16 listen_port = 7890; qint16 listen_port = 7890;
QTcpServer tcp_server; QTcpServer tcp_server;