QT开发中文网

Qt 基于TCP的Socket编程

Qt 中基于 TCP 的 Socket 编程可以通过 QTcpSocket 类来实现。以下是一个简单的例子演示如何使用 QTcpSocket 客户端连接到服务器,并向服务器发送数据:

#include <QTcpSocket>

void sendToServer()
{
    // 创建 socket
    QTcpSocket *socket = new QTcpSocket(this);

    // 连接到服务器
    socket->connectToHost("localhost", 1234);

    if(socket->waitForConnected(3000)) {
        // 发送数据
        QByteArray data = "Hello Server!";
        socket->write(data);
        socket->waitForBytesWritten(3000);

        // 关闭连接
        socket->close();
    }
}

以下是一个简单的例子演示如何编写一个服务器应用程序,以便接收客户端发来的消息:

#include <QTcpServer>
#include <QTcpSocket>

void startServer()
{
    // 创建服务器
    QTcpServer *server = new QTcpServer(this);

    // 监听端口
    server->listen(QHostAddress::Any, 1234);

    // 当有新的连接时触发 connected() 信号
    connect(server, &QTcpServer::newConnection, [&]() {
        // 接受连接
        QTcpSocket *socket = server->nextPendingConnection();

        // 接收数据
        connect(socket, &QTcpSocket::readyRead, [&]() {
            QByteArray data = socket->readAll();
            qDebug() << "Received:" << data;

            // 回复客户端
            QByteArray reply = "Hello Client!";
            socket->write(reply);
        });
    });
}

以上是基本的 QTcpSocket 编程示例。需要注意的是, QTcpSocket 是在主线程中创建和使用的,如果需要在另一个线程中使用,请使用 QThread 或 QtConcurrent 等机制来实现。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://qt.0voice.com/?id=40

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?