Qt TCP
时间: 2023-07-10 10:19:20 浏览: 101
在Qt中,使用TCP协议进行网络编程需要使用QTcpSocket类和QTcpServer类。
QTcpSocket类用于客户端实现TCP连接,它提供了以下方法:
- connectToHost():连接到指定的主机和端口。
- write():向服务器发送数据。
- readyRead():当有数据可读时发出信号。
- readAll():读取所有可用的数据。
以下是一个使用QTcpSocket类实现客户端TCP连接的示例代码:
```cpp
QTcpSocket socket;
socket.connectToHost("127.0.0.1", 1234); //连接到本机IP地址为127.0.0.1的1234端口
if (socket.waitForConnected()) { //等待连接成功
socket.write("Hello, server"); //向服务器发送数据
socket.waitForReadyRead(); //等待有数据可读
QByteArray data = socket.readAll(); //读取服务器返回的数据
qDebug() << data;
}
```
QTcpServer类用于服务器端实现TCP连接,它提供了以下方法:
- listen():开始监听指定端口的连接请求。
- incomingConnection():当有新的连接请求时发出信号。
- nextPendingConnection():返回下一个已经连接的客户端套接字。
以下是一个使用QTcpServer类实现服务器端TCP连接的示例代码:
```cpp
QTcpServer server;
server.listen(QHostAddress::Any, 1234); //监听所有IP地址的1234端口
if (server.isListening()) { //等待监听成功
QObject::connect(&server, &QTcpServer::newConnection, [&]() {
QTcpSocket* socket = server.nextPendingConnection(); //获取连接的套接字
QByteArray data = socket->readAll(); //读取客户端发送的数据
qDebug() << data;
socket->write("Hello, client"); //向客户端发送数据
socket->disconnectFromHost(); //断开连接
});
}
```
以上是使用QTcpSocket类和QTcpServer类实现TCP连接的基本流程,具体实现可根据需求进行调整。
阅读全文