QT开发中文网

QTcpSocket 发送数据

在 Qt 中,QTcpSocket 用于实现 TCP 客户端。要发送数据,你可以使用 write() 方法。下面是一个简单的例子,展示如何创建一个 QTcpSocket 并发送数据:

#include <QCoreApplication>
#include <QTcpSocket>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 创建 QTcpSocket 对象
    QTcpSocket socket;

    // 连接到服务器(例如:localhost:1234)
    socket.connectToHost("127.0.0.1", 1234);

    // 等待连接成功
    if (!socket.waitForConnected(5000)) {
        qDebug() << "Error:" << socket.errorString();
        return -1;
    }

    // 要发送的数据
    QByteArray data = "Hello, Server!";
    
    // 发送数据
    qint64 bytesWritten = socket.write(data);
    
    if (bytesWritten == -1) {
        qDebug() << "Failed to send data:" << socket.errorString();
    } else {
        qDebug() << "Sent" << bytesWritten << "bytes.";
    }

    // 刷新套接字,确保所有数据被发送
    socket.flush();

    // 关闭套接字
    socket.disconnectFromHost();

    return a.exec();
}

代码解释:

  • 创建 QTcpSocket 的实例。
  • 使用 connectToHost() 方法连接到指定的服务器和端口。
  • 使用 waitForConnected() 方法等待连接建立。
  • 构造要发送的数据,并调用 write() 方法将其写入套接字。
  • 使用 flush() 确保所有数据都被发送出去。
  • 最后,可以选择断开与服务器的连接。

确保在实际应用中处理可能发生的错误,并根据需要添加信号槽机制以处理异步事件。


内容由零声教学AI助手提供,问题来源于学员提问

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?