1 Star 0 Fork 3

Qiu555/串口调试助手

forked from panda/串口调试助手 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
server.cpp 1.98 KB
一键复制 编辑 原始数据 按行查看 历史
panda 提交于 2018-06-13 15:26 +08:00 . QTcpServer 已经可以了
#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();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/qiu555/serial_debug_assistant.git
git@gitee.com:qiu555/serial_debug_assistant.git
qiu555
serial_debug_assistant
串口调试助手
master

搜索帮助