|
|
|
|
@ -23,21 +23,13 @@ TPTcpServer::~TPTcpServer()
|
|
|
|
|
|
|
|
|
|
bool TPTcpServer::server_begin(const QHostAddress& address, quint16 nPort)
|
|
|
|
|
{
|
|
|
|
|
//qDebug() << __FUNCTION__;
|
|
|
|
|
if (!this->listen(address, nPort))
|
|
|
|
|
{
|
|
|
|
|
qWarning() << __FUNCTION__ << endl
|
|
|
|
|
<< "Could not start server. Error: " << this->errorString();
|
|
|
|
|
qWarning() << __FUNCTION__ << endl << "Could not start server. Error: " << this->errorString();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//qDebug() << __FUNCTION__ << endl
|
|
|
|
|
// << "Server started. Listening to port " << nPort;
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TPTcpServer::server_end()
|
|
|
|
|
{
|
|
|
|
|
@ -151,7 +143,7 @@ void TPTcpServer::createServerSendSockets(int sessNum)
|
|
|
|
|
{
|
|
|
|
|
for (int nIndex = 1; nIndex <= sessNum; nIndex++) {
|
|
|
|
|
tcpServerSend *data_sess_ptr = new tcpServerSend(nIndex);
|
|
|
|
|
connect(this, &TPTcpServer::signal_data_session_start, data_sess_ptr, &tcpServerSend::on_session_start);
|
|
|
|
|
//connect(this, &TPTcpServer::signal_data_session_start, data_sess_ptr, &tcpServerSend::on_session_start);
|
|
|
|
|
connect(data_sess_ptr, &tcpServerSend::signal_listen_successful, this, &TPTcpServer::on_listen_successful);
|
|
|
|
|
connect(data_sess_ptr, SIGNAL(signal_data_sess_closed(qint64)), this, SLOT(on_data_session_closed(qint64)));
|
|
|
|
|
connect(data_sess_ptr, SIGNAL(signal_bin_data_send_completed(QSharedPointer<TP_PROTOCOL_MESSAGE>)), this, SLOT(on_data_send_completed(QSharedPointer<TP_PROTOCOL_MESSAGE>)));
|
|
|
|
|
@ -204,7 +196,7 @@ void TPTcpServer::createClientRecvSocket(int socketNum)
|
|
|
|
|
|
|
|
|
|
connect(thread_ptr, &QThread::finished, data_sess_ptr, &QObject::deleteLater);
|
|
|
|
|
connect(data_sess_ptr, &tcpClientRecv::signal_data_recv_completed, this, &TPTcpServer::on_data_recv_completed_client);
|
|
|
|
|
connect(this, &TPTcpServer::signal_session_start, data_sess_ptr, &tcpClientRecv::on_session_start);
|
|
|
|
|
//connect(this, &TPTcpServer::signal_session_start, data_sess_ptr, &tcpClientRecv::on_session_start);
|
|
|
|
|
connect(data_sess_ptr, &tcpClientRecv::sgException, this, &TPTcpServer::on_data_recv_close);
|
|
|
|
|
data_sessions_[strUuid] = thread_ptr;
|
|
|
|
|
m_childRevSocket_Map[strUuid] = QPair<bool, tcpClientRecv*>(false, data_sess_ptr);
|
|
|
|
|
@ -329,10 +321,10 @@ void TPTcpServer::on_msg_received(int sessID, QSharedPointer<TP_PROTOCOL_MESSAGE
|
|
|
|
|
if (pClient)
|
|
|
|
|
{
|
|
|
|
|
QString strUuid = pClient->getUuid();
|
|
|
|
|
qDebug() << "curUUId:" << strUuid << " port:" << nport;
|
|
|
|
|
pClient->set_msg_body(msg_ptr->body);
|
|
|
|
|
emit signal_session_start(strUuid, strCliIP, nport);
|
|
|
|
|
setRevSocketisBusy(strUuid, true);
|
|
|
|
|
pClient->set_msg_body(msg_ptr->body);
|
|
|
|
|
emit pClient->sgStartSession(strUuid, strCliIP, nport);
|
|
|
|
|
//emit signal_session_start();
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
@ -482,9 +474,8 @@ void TPTcpServer::on_data_session_closed(qint64 sessID)
|
|
|
|
|
void TPTcpServer::on_listen_successful(QSharedPointer<TP_PROTOCOL_MESSAGE> msg_ptr)
|
|
|
|
|
{
|
|
|
|
|
QString client_name = msg_ptr->body["client_name"].toString();
|
|
|
|
|
if (client_name.isEmpty()) return;
|
|
|
|
|
|
|
|
|
|
//data_port_ = msg_ptr->body["server_port"].toInt();
|
|
|
|
|
if (client_name.isEmpty())
|
|
|
|
|
return;
|
|
|
|
|
send_package(client_name, *msg_ptr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -504,12 +495,12 @@ void TPTcpServer::send_binary_data(const QString& strClient, TP_PROTOCOL_MESSAGE
|
|
|
|
|
if (data_sess_ptr)
|
|
|
|
|
{
|
|
|
|
|
int sessID = data_sess_ptr->getSessionID();
|
|
|
|
|
//qDebug() << "curUse ID:" << sessID;
|
|
|
|
|
setSendSessionisBusy(sessID, true);
|
|
|
|
|
data_sess_ptr->setClientName(it->client_name_);
|
|
|
|
|
data_sess_ptr->set_msg_body(msg.body);
|
|
|
|
|
data_sess_ptr->set_bin_data_to_send(binaryData);
|
|
|
|
|
emit signal_data_session_start(sessID, data_port_, true);
|
|
|
|
|
setSendSessionisBusy(sessID, true);
|
|
|
|
|
emit data_sess_ptr->signal_session_start(sessID, data_port_, true);
|
|
|
|
|
//emit signal_data_session_start(sessID, data_port_, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -521,11 +512,11 @@ void TPTcpServer::send_binary_data(const QString& strClient, TP_PROTOCOL_MESSAGE
|
|
|
|
|
if (data_sess_ptr)
|
|
|
|
|
{
|
|
|
|
|
int sessID = data_sess_ptr->getSessionID();
|
|
|
|
|
setSendSessionisBusy(sessID, true);
|
|
|
|
|
data_sess_ptr->setClientName(strClient);
|
|
|
|
|
data_sess_ptr->set_msg_body(msg.body);
|
|
|
|
|
data_sess_ptr->set_bin_data_to_send(binaryData);
|
|
|
|
|
emit signal_data_session_start(sessID, data_port_, true);
|
|
|
|
|
setSendSessionisBusy(sessID, true);
|
|
|
|
|
emit data_sess_ptr->signal_session_start(sessID, data_port_, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|