zp_netlistenthread.cpp 1.3 KB
Newer Older
丁劲犇's avatar
丁劲犇 已提交
1
#include "zp_netlistenthread.h"
2
namespace ZPNetwork{
丁劲犇's avatar
丁劲犇 已提交
3 4 5 6 7 8 9 10
	zp_netListenThread::zp_netListenThread(const QString & id, QHostAddress address ,quint16 port,bool bSSL,QObject *parent)
		:QObject(parent)
		,m_tcpServer(0)
		,m_id(id)
		,m_address(address)
		,m_port(port)
		,m_bSSLConn (bSSL)
	{
丁劲犇's avatar
丁劲犇 已提交
11

丁劲犇's avatar
丁劲犇 已提交
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
	}
	void zp_netListenThread::startListen(const QString & id)
	{
		if (id==m_id)
		{
			if (!m_tcpServer)
			{
				m_tcpServer = new ZP_TcpServer(this);
				connect (m_tcpServer,&ZP_TcpServer::evt_NewClientArrived,this,&zp_netListenThread::evt_NewClientArrived,Qt::QueuedConnection);
				if (false==m_tcpServer->listen(m_address,m_port))
				{
					disconnect (m_tcpServer,&ZP_TcpServer::evt_NewClientArrived,this,&zp_netListenThread::evt_NewClientArrived);
					emit evt_Message("Error>"+QString(tr("Can not start listen!")));
					m_tcpServer->deleteLater();
					m_tcpServer = 0;
					//Close this thread.
					emit evt_ListenClosed(m_id);
				}
			}
		}
	}
丁劲犇's avatar
丁劲犇 已提交
33

丁劲犇's avatar
丁劲犇 已提交
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
	void zp_netListenThread::stopListen(const QString & id)
	{
		if (id==m_id)
		{
			if (m_tcpServer)
			{
				disconnect (m_tcpServer,&ZP_TcpServer::evt_NewClientArrived,this,&zp_netListenThread::evt_NewClientArrived);
				m_tcpServer->close();
				m_tcpServer->deleteLater();
				m_tcpServer = 0;
				//Close this thread.
				emit evt_Message("Info>"+QString(tr("Listen Closed!")));
				emit evt_ListenClosed(m_id);
			}
		}
	}
50
}