【发布时间】:2016-10-24 13:04:51
【问题描述】:
我看到的关于我的问题的帖子很少,但是,我似乎仍然无法解决问题,而且回复还不够。所以这是任务:我有 2 台 PC。一台必须传输 100 个 udp 数据包,带有一个简单的测试数据,另一台机器必须读取数据报。我的代码如下:
服务器:
m_socket.udp = new QUdpSocket(this);
if (m_socket.udp->bind(QHostAddress("192.168.32.154"), 1234)) {
m_socket.udp->connectToHost(QHostAddress("192.168.32.154"), 1234);
m_socket.udp->waitForConnected();
}
connect(m_socket.udp, SIGNAL(connected()),
this, SLOT(handleConnection()));
connect(m_socket.udp, SIGNAL(readyRead()),
this, SLOT(readyReadUdp()));
所以...首先 - 绑定到机器 1 的 IP 失败。我不能指定它的 IP。
客户端很简单:
p_socket = new QUdpSocket(this);
p_socket->connectToHost(QHostAddress("192.168.32.94"), 1234);
connect(p_socket, SIGNAL(connected()), this, SLOT(writeDgram()));
....
void writeDgram() {
p_socket->write(QByteArray("test"));
}
因此,在wireshark 中查看的客户端代码会出现在我的服务器机器上。但是我的服务器 Qt 代码让我失望了。这里有什么帮助吗?
【问题讨论】:
-
您能说得更具体些吗?你在wireshark中看到了什么? “首先 - 绑定到机器 1 的 IP 失败”是什么意思?
-
我正在绑定到远程主机,例如:192.168.32.150 和端口 1234,这将是机器 1,我从 192.168.32.150 向正在等待的机器发送 100 个数据报。一个连接 2 个 UDP 套接字的简单示例会很棒。但示例必须在两台计算机之间。
-
两台机器之间交换少量数据报有那么复杂吗?还没有答案吗?
-
一点也不。它应该相当简单。
-
那么为什么机器 1 一直在发送 UDP,而wireshark 从机器 2 捕获它们,但我的绑定从不发出 readyRead 数据报?
标签: qt udp qudpsocket