在 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助手提供,问题来源于学员提问