欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

QTcpServer / QTcpSocket 简单示例

发布时间:2025/1/21 c/c++ 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 QTcpServer / QTcpSocket 简单示例 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

先看服务端

#include <QObject> #include <QTcpServer> #include <QTcpSocket>class CTcpServer : public QObject {Q_OBJECT public:explicit CTcpServer(QObject *parent = 0);~CTcpServer();private slots:void onNewConnection();void onReadMessage();private:void _writeData(QString data); private:QTcpServer * m_pTcpServer;QTcpSocket * m_pTcpSocket; };

源文件

CTcpServer::CTcpServer(QObject *parent) : QObject(parent) {m_pTcpServer = new QTcpServer();m_pTcpServer->listen(QHostAddress::Any,1122);connect(m_pTcpServer,&QTcpServer::newConnection,this,&TLTcpServer::onNewConnection); }void CTcpServer::onNewConnection() {m_pTcpSocket = m_pTcpServer->nextPendingConnection();connect(m_pTcpSocket,&QTcpSocket::readyRead,this,&CTcpServer::onReadMessage); }void CTcpServer::onReadMessage() {QByteArray ba = m_pTcpSocket->readAll();}void CTcpServer::_writeData(QString data) {QByteArray array = data.toStdString().c_str();m_pTcpSocket->write(array,strlen(array)); }

客户端

#include <QObject> #include <QTcpSocket>class CTcpSocket : public QObject {Q_OBJECT public:explicit CTcpSocket(QObject *parent = 0);~CTcpSocket();void setHostAddr(QString hostAddr);//设置服务端ip地址void setSendData(QByteArray data); private slots:void onReadyRead(); private:QTcpSocket * m_pTcpSocket = NULL; };

源文件

CTcpSocket::CTcpSocket(QObject *parent) : QObject(parent) {m_pTcpSocket = new QTcpSocket(); connect(m_pTcpSocket,&QTcpSocket::readyRead,this,&CTcpSocket ::onReadyRead); }CTcpSocket::~CTcpSocket() {delete m_pTcpSocket; }void CTcpSocket::onReadyRead() { QByteArray ba = m_pSocket->readAll();qDebug() << "tcpSocket::onReadyRead() ba="<<ba; } void CTcpSocket::setHostAddr(QString hostAddr) {m_pTcpSocket->connectToHost(hostAddr,5678);if(!m_pTcpSocket->waitForConnected()){qDebug() << "Rcontrol socket connect error";}else{qDebug() << "Rcontrol socket connect success";} }void CTcpSocket::setSendData(QByteArray data) {m_pTcpSocket->write(data);m_pTcpSocket->flush(); } 与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是生活随笔为你收集整理的QTcpServer / QTcpSocket 简单示例的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。