我想将QUdpSocket"连接"到远程主机端口,但失败了。可能吗?
我想实现的方案如下:
1( 服务器绑定到本地主机/端口:
// 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是一种无连接协议。反之亦然 - 绑定到本地主机并从另一个主机将数据发送到该主机。但我对这种方式很感兴趣,因为远程主机可能是提供音频流的服务器,我想用我的代码阅读。
在示例和教程中,我只看到绑定到本地端口并从中读取数据。未提供绑定到远程主机端口的示例。
bind()
将套接字绑定到本地地址。 connect()
套接字连接到远程地址。通常服务器绑定和客户端连接。