Хочется сделать настройку сети бродкастами (255.255.255.255) udp пакетов, это реально?
Есть два компьютера соединены на прямую, у одного стоит сеть 10.0.1.1 у второго 192.168.0.3. С одного шлю пакет на другой wireshark его видит, а QUdpSocet нет.
Если оба компьютера поместить в оду сеть, это работает, если потом один переместить в другую тоже работает. А вот если оба загрузились в разных сетях изначально то нет.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QNetworkDatagram>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
bool ok = in.bind(QHostAddress::Any, 49001);
ok &= out.bind(QHostAddress("10.0.1.1"));
if (!ok) qDebug() << "BIND FAIL";
connect(&in, &QUdpSocket::readyRead,
this, &MainWindow::slotReadData);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::slotReadData()
{
QNetworkDatagram data;
if (in.hasPendingDatagrams())
{
data = in.receiveDatagram();
if (data.isValid())
{
qDebug() << data.data();
}else{
qCritical() << "invalid datagram";
}
}
}
void MainWindow::on_pushButton_clicked()
{
if (out.writeDatagram(QByteArray("Test"), QHostAddress::Broadcast, 49002) != 4)
{
qDebug() << "WRITE ERROR";
}
}