Russian Qt Forum

Qt => Работа с сетью => Тема начата: lnxdx от Апрель 28, 2018, 13:56



Название: QUdpSocket::readyRead() не работает в openSUSE 42.3
Отправлено: lnxdx от Апрель 28, 2018, 13:56
Не срабатывает readyRead().. Версия Qt 5.9.5 .. В wireshark сообщения есть, но в программе они не находятся.
Программы из примеров broadcastreceiver & broadcastsender тоже не работают.. Как быть?


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    socket = new QUdpSocket(this);
    timer = new QTimer(this);
    timer->start(1000);
    connect(timer, SIGNAL(timeout()), this, SLOT(SayHello()));
    socket->bind(QHostAddress::Broadcast,1122);
    connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead1()));
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::SayHello()
{
    Request.resize(5);
    Request[0] = 0x21;
    Request[1] = 0xab;
    Request[2] = 0xFF;
    Request[3] = 0xFF;
    Request[4] = 0x00;
    socket->writeDatagram(Request, QHostAddress::Broadcast, 1122);
    qDebug() <<"Запрос:"<< Request;
}

void MainWindow::readyRead1()
{
    Response.resize(socket->pendingDatagramSize());
    socket->readDatagram(Response.data(), Response.size(), &sender, &senderPort);
    qDebug() <<"Ответ:"<< Response;
}


Название: Re: QUdpSocket::readyRead() не работает в openSUSE 42.3
Отправлено: qate от Апрель 28, 2018, 15:07
чего говорит iptables-save ?


Название: Re: QUdpSocket::readyRead() не работает в openSUSE 42.3
Отправлено: vic57 от Апрель 28, 2018, 15:20
попробуй localhost:8000, может порт занят


Название: Re: QUdpSocket::readyRead() не работает в openSUSE 42.3
Отправлено: lnxdx от Май 03, 2018, 11:14
чего говорит iptables-save ?


Отключен


Название: Re: QUdpSocket::readyRead() не работает в openSUSE 42.3
Отправлено: lnxdx от Май 03, 2018, 11:15
попробуй localhost:8000, может порт занят
Ответ от localhost приходит


Название: Re: QUdpSocket::readyRead() не работает в openSUSE 42.3
Отправлено: vic57 от Май 03, 2018, 14:19
а QHostAddress:Any ?


Название: Re: QUdpSocket::readyRead() не работает в openSUSE 42.3
Отправлено: lnxdx от Май 04, 2018, 11:01
Если запускаю два экземпляра приложение, то все работает... Где я допустил ошибку?


Название: Re: QUdpSocket::readyRead() не работает в openSUSE 42.3
Отправлено: vic57 от Май 04, 2018, 12:59
их и должно быть два - sender/receiver