Qt 4.8 文档包含以下建议:
如果要使用标准 QIODevice 函数 read()、readLine()、write() 等,必须首先通过调用 connectToHost() 将套接字直接连接到对等方。
所以我尝试了以下代码:
udp.connectToHost(hostName, hostPort); // connected
udp.bind(hostName, hostPort);
当我执行此代码时,Qt 会记录以下调试消息:
在 QAbstractSocket::UnconnectedState 中未调用 QNativeSocketEngine::bind()
这意味着bind
要求套接字处于未连接状态。所以我尝试了以下方法:
udp.bind(hostName, hostPort); // bound
udp.connectToHost(hostName, hostPort);
但它也不起作用:套接字没有连接到主机,它处于错误状态。
配置 QUdpSocket 以将其用作 QIODevice 的正确方法是什么?