Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: QUdpSocket - readyRead, не принимает датаграммы  (Прочитано 1858 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nextdrift

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Всем привет, недавно возился с tcp readyread... Ответ нашёл и всё заработало... А вот с udp прям засада, даже примеры не работают... Точнее работает отправка, а вот с приёмом проблема...

#include "udpclient.h"
#include "ui_udpclient.h"

UdpClient::UdpClient(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::UdpClient)
{
    ui->setupUi(this);

    udpSocketSend = new QUdpSocket(this);
    udpSocketGet  = new QUdpSocket(this);

    udpSocketGet->bind(45454);

    connect(udpSocketGet, SIGNAL(readyRead()),this, SLOT(read()));
    connect(ui->pushSend, SIGNAL(clicked()), this, SLOT(send()));
}

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

void UdpClient::send() {
    qDebug() << "send";
    QByteArray datagram = ui->inputMess->text().toAscii();
    udpSocketSend->writeDatagram(datagram.data(), datagram.size(),
                          QHostAddress::Broadcast, 45454);
}

void UdpClient::read() {
    qDebug() << "get";
    while (udpSocketGet->hasPendingDatagrams()) {
        QByteArray datagram;
        datagram.resize(udpSocketGet->pendingDatagramSize());
        udpSocketGet->readDatagram(datagram.data(), datagram.size());
        ui->response->append(datagram.data());
    }
}


вот мой код, где можно его покопать? Может что указать забыл?  :crazy2:

Пользователь решил продолжить мысль 26 Мая 2013, 21:55:06:
мда............

повесил на localhost отправку, всё заработало...
А почему широковещательный не работает? С чем может быть связано?
« Последнее редактирование: 26 Мая 2013, 21:55:06 от nextdrift »

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.