我看到关于我的问题的线索很少,但是,我似乎无法解决问题,而且回复还不够。所以这是任务:我有2台电脑。必须使用简单的测试数据传输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代码让我失望。这里有什么帮助吗?
答案 0 :(得分:1)
然而,没有人提议我可以防火墙。那就是问题所在。删除防火墙解决了这个问题。
答案 1 :(得分:0)
我已经设置了另一个udp套接字来处理传入的连接:
C:\Projets\node_modules\strip-bom\index.js:2
module.exports = x => {
^
SyntaxError: Unexpected token >
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\Projets\node_modules\gulp-sourcemaps\src\init.js:10:14)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
但似乎它没有以正确的方式运作。当我连接时,我可以读取对等主机和端口,但是辅助套接字,对于inaddress必须绑定到什么?我对UDP感到困惑。 [编辑]只是补充一点,我从未在readyReadUdp()槽中断,我在那里放了一个断点。读者是标准的,但从不调用插槽。所以我想没有什么可以读的。