用qt写一段代码实现两个socket同步通讯,其中IP地址不同但端口号都是10001
时间: 2024-02-11 08:05:40 浏览: 84
好的,以下是用 Qt 实现两个 Socket 同步通讯的代码,其中 IP 地址不同但端口号都是 10001:
```cpp
#include <QTcpSocket>
#include <QHostAddress>
int main()
{
// 创建两个 Socket
QTcpSocket socket1;
QTcpSocket socket2;
// 连接第一个 Socket
socket1.connectToHost(QHostAddress("192.168.1.100"), 10001);
if (!socket1.waitForConnected()) {
qDebug() << "socket1 连接失败";
return 1;
}
// 连接第二个 Socket
socket2.connectToHost(QHostAddress("192.168.1.101"), 10001);
if (!socket2.waitForConnected()) {
qDebug() << "socket2 连接失败";
return 1;
}
// 同步通讯
while (true) {
// 从第一个 Socket 读取数据
if (socket1.bytesAvailable() > 0) {
QByteArray data = socket1.readAll();
qDebug() << "socket1 收到数据:" << data;
// 将数据发送到第二个 Socket
socket2.write(data);
}
// 从第二个 Socket 读取数据
if (socket2.bytesAvailable() > 0) {
QByteArray data = socket2.readAll();
qDebug() << "socket2 收到数据:" << data;
// 将数据发送到第一个 Socket
socket1.write(data);
}
}
return 0;
}
```
这段代码创建了两个 TCP Socket,分别连接到 IP 地址为 192.168.1.100 和 192.168.1.101,端口号都是 10001。然后在一个无限循环中,不断地从两个 Socket 中读取数据,并把数据发送到另一个 Socket 中。这样就实现了两个 Socket 的同步通讯。
阅读全文