我想将QUdpSocket“连接”到远程主机端口,但是没有这样做。有可能吗?
我想实现的方案如下:
1)服务器绑定到localhost / port:
// On server side, let server IP be "192.168.0.235"
serverUdpSocket->connectToHost(QHostAddress(QHostAddress::LocalHost), 44444);
... // check if connection is ok, etc
serverUdpSocket->write(someByteArray);
2)客户端从服务器读取数据,我试过:
// bind fails with SocketAddressNotAvailableError
udpSocket->bind(QHostAddress("192.168.0.235"), 44444);
这样:
udpSocket->connectToHost(QHostAddress("192.168.0.235"), 44444, QIODevice::ReadOnly);
// State becomes "Connected", but I don't get any data and `readyRead()`
// is never emitted, though I connected to it.
但它不起作用。
我知道UDP是一种无连接协议。 A也设法做到反之亦然 - 绑定到本地主机并从另一个主机向该主机发送数据。但我对这种方式感兴趣,因为远程主机可能是提供音频流的服务器,我想用我的代码阅读。
在示例和教程中,我只看到绑定到本地端口并从中读取数据。没有提供绑定到远程主机端口的示例。
答案 0 :(得分:1)
bind()
将套接字绑定到本地地址。 connect()
将套接字连接到远程地址。通常服务器绑定和客户端连接。