TCPServer/tcpserver.h

41 lines
1.2 KiB
C++

#ifndef TCPSERVER_H
#define TCPSERVER_H
#include <QObject>
#include <QTcpServer>
#include <QTcpSocket>
#include <QDebug>
class TCPServer : public QObject
{
Q_OBJECT
public:
static TCPServer* getInstance();
void configAndrun();
void setServer(QString IP, qint16 port);
void setCallBack(void (*callback)(QByteArray &data,QTcpSocket* socket));//Qt的信号-槽机制实际就是回调函数,
void setCallBack(void (*callback)(QTcpSocket* socket)); //此处为练手,不使用该机制
void sendToclient(QTcpSocket *socket,QByteArray data);
void setTimeOut(int timeout);
void stopRun();
private:
explicit TCPServer(QObject *parent = nullptr);
~TCPServer();
int _timeout = 20;
QString listen_addr = "0.0.0.0";
qint16 listen_port = 7890;
QTcpServer tcp_server;
QTcpSocket* sock;
QList <QTcpSocket*> tcp_socket_list;
void (*recvcallback) (QByteArray &data, QTcpSocket* socket)=nullptr;
void (*disccallback) (QTcpSocket* socket)=nullptr;
static TCPServer tcpserver_instance;
private slots:
void acceptTCPConnection();
void TCPReadPeer();
void discTCPConnection();
signals:
};
#endif // TCPSERVER_H