代码拉取完成,页面将自动刷新
同步操作将从 panda/串口调试助手 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "server.h"
Server::Server(QObject *parent) : QObject(parent)
{
m_tcpServer = new QTcpServer();
m_tcpServer->setMaxPendingConnections(10);
connect(m_tcpServer,SIGNAL(newConnection()),this,SLOT(newConnectSlot()));
}
Server::~Server()
{
}
void Server::init(QString ip, int port)
{
if(ip=="")
m_tcpServer->listen(QHostAddress::AnyIPv4,port);
else
m_tcpServer->listen(QHostAddress(ip),port);
}
void Server::sendData(QString ip, QString data)
{
m_mapClient.value(ip)->write(data.toLatin1());
}
void Server::sendData(QString ip, uchar *rawData)
{
m_mapClient.value(ip)->write(QByteArray((char *)rawData));
}
void Server::sendData(QString ip, char *data,int len)
{
m_mapClient.value(ip)->write(data,len);
}
void Server::newConnectSlot()
{
QTcpSocket *tcp = m_tcpServer->nextPendingConnection();
emit signal_socket_change(tcp->peerAddress().toString(),1);
connect(tcp,SIGNAL(readyRead()),this,SLOT(readMessage()));
m_mapClient.insert(tcp->peerAddress().toString(),tcp);
connect(tcp,SIGNAL(disconnected()),this,SLOT(removeUserFromList()));
}
void Server::readMessage()
{
QTcpSocket *socket = static_cast<QTcpSocket*> (sender());
// qDebug() <<"ip =" << ip;
// qDebug()<< socket->peerAddress().toString() << socket->readAll().toHex();
//qDebug() <<"server len = " << socket->readAll().toHex().length();
emit signal_recv_data(socket->peerAddress().toString(),socket->readAll());
}
void Server::removeUserFromList()
{
QTcpSocket *socket = static_cast<QTcpSocket*>(sender());
emit signal_socket_change(socket->peerAddress().toString(),0);
QMap<QString ,QTcpSocket *>::iterator it;
for(it=m_mapClient.begin();it!=m_mapClient.end();it++)
{
if(it.key()== socket->peerAddress().toString())
{
m_mapClient.erase(it);
break;
}
}
}
void Server::closeServer()
{
m_tcpServer->close();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。