You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
whellvalue/src/NetWheel/qnettcpserver.h

55 lines
1.1 KiB
C++

#ifndef QNETTCPSERVER_H
#define QNETTCPSERVER_H
#include <QTcpServer>
#include <QMap>
#include <QTime>
#include <QList>
#include "QTimer"
#include "clientsession.h"
#include "QMetaType"
#define MAX_DATA_PORT 65535
class QNetTcpServer : public QTcpServer
{
Q_OBJECT
public:
QNetTcpServer(QObject *parent = NULL);
~QNetTcpServer();
bool Begin(const QHostAddress& address, quint16 nPort);
void End();
void sendPackage(QString tgName, QByteArray ndata);
void sendPackage(QByteArray);
public slots:
void dataReceived(QString, QByteArray);
void dataReceived(int, QByteArray);
void slotDisconnected(int);
void slotDisconnected(QString);
protected:
void incomingConnection(qintptr socketDescriptor);
private:
quint16 getNextPort();
signals:
void sgRecvData(QByteArray);
void sgConnected(QString);
void sgConnect(QVariantMap);
private:
quint16 mdataPort;
// clear expired data session
qint64 mdataSessID;
QMap<int, ClientSession*> mClientsSessMap;
QMap<QString, ClientSession*> mClientsSessMapTg;
QString mAddress;
qint16 mPort;
QString mPeerName;
};
#endif // QNETTCPSERVER_H