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.
57 lines
1.2 KiB
C++
57 lines
1.2 KiB
C++
#ifndef __TP_RAW_CLIENTSESSION_H__
|
|
#define __TP_RAW_CLIENTSESSION_H__
|
|
|
|
#include <QThread>
|
|
#include <QTcpSocket>
|
|
#include <QByteArray>
|
|
#include <QTimer>
|
|
|
|
typedef std::function<void(QByteArray)> RecvDataFunc;
|
|
|
|
class lpRawClientSession : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
lpRawClientSession(int ID, QObject *parent = 0);
|
|
~lpRawClientSession();
|
|
|
|
void setRecvCallBackFunc(RecvDataFunc func) { _func = func; };
|
|
void force_close();
|
|
Q_SLOT void on_data_to_send(int sess_id, QSharedPointer<QByteArray>);
|
|
QString getClientIP();
|
|
int getClientPort();
|
|
|
|
void setClientID(QString strID) {
|
|
m_strID = strID;
|
|
};
|
|
QString getClientID()const {
|
|
return m_strID;
|
|
};
|
|
QString getInfo(QString &address, qint16 &port, QString perrname)
|
|
{
|
|
address = mAddress;
|
|
port = mPort;
|
|
perrname = mPeerName;
|
|
return mSocketName;
|
|
};
|
|
signals:
|
|
void data_received(int, QSharedPointer<QByteArray>);
|
|
void sess_disconnected(int);
|
|
private:
|
|
void socket_close();
|
|
|
|
Q_SLOT void on_ready_read();
|
|
Q_SLOT void on_disconnect();
|
|
private:
|
|
QTcpSocket *psocket_{ nullptr };
|
|
int socket_descriptor_;
|
|
RecvDataFunc _func;
|
|
QString m_strID;
|
|
|
|
QString mPeerName;
|
|
QString mAddress;
|
|
qint16 mPort;
|
|
QString mSocketName;
|
|
};
|
|
#endif //__TP_RAW_CLIENTSESSION_H__
|