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.
wheeldetect/tpvs17/tpMain/lpRawTcp/lpRawTcpClientSession.h

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__