void test::on_pushButton_clicked()
{
QUdpSocket *us;
us = new QUdpSocket;
QByteArray ba = "iTom is comming...";
us->writeDatagram(ba, QHostAddress::Broadcast, 3333);
}
如上代碼,button的槽函式為什么發不出廣播包啊?QT5到底是如何發送廣播包的。
我不需要接收資訊,只需要發送廣播包。
我用抓包軟體在電腦的網卡上抓不到發送的廣播包。
我發送到普通的單播地址能獲取到發送的資料
我同時也驗證了,用別的軟體在網卡上是可以抓到廣播包的,也就是說我的網卡沒問題,就是這段代碼發送不了廣播包。
uj5u.com熱心網友回復:
用QHostAddress::Broadcast不行,得直接寫ip,比如你當前的ip是192.168.1.1,那發送廣播的地址就是192.168.1.255,即QHostAddress::Broadcast換成QHostAddress("192.168.1.255")uj5u.com熱心網友回復:
我試了樓主的程式,可以抓到廣播包。
uj5u.com熱心網友回復:
這個我后來查看了,是由于我虛擬機存在多塊虛擬網卡導致的,網卡有影響。代碼沒有問題。我將虛擬網卡禁用了就收到資料包了。謝謝轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/92795.html
標籤:Qt
上一篇:呼叫popToViewController之后再popViewControllre后閃現上一個界面
下一篇:小程式頁面適配問題
