Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# receiver.cpp Example File
network/broadcastreceiver/receiver.cpp

        #include <QtGui>
        #include <QtNetwork>

        #include "receiver.h"

        Receiver::Receiver(QWidget *parent)
            : QDialog(parent)
        {
            statusLabel = new QLabel(tr("Listening for broadcasted messages"), this);
            quitButton = new QPushButton(tr("&Quit"), this);

            udpSocket = new QUdpSocket(this);
            udpSocket->bind(45454);

            connect(udpSocket, SIGNAL(readyRead()),
                    this, SLOT(processPendingDatagrams()));
            connect(quitButton, SIGNAL(clicked()), this, SLOT(close()));

            QHBoxLayout *buttonLayout = new QHBoxLayout;
            buttonLayout->addStretch(1);
            buttonLayout->addWidget(quitButton);

            QVBoxLayout *mainLayout = new QVBoxLayout(this);
            mainLayout->addWidget(statusLabel);
            mainLayout->addLayout(buttonLayout);

            setWindowTitle(tr("Broadcast Receiver"));
        }

        void Receiver::processPendingDatagrams()
        {
            while (udpSocket->hasPendingDatagrams()) {
                QByteArray datagram;
                datagram.resize(udpSocket->pendingDatagramSize());
                udpSocket->readDatagram(datagram.data(), datagram.size());
                statusLabel->setText(tr("Received datagram: \"%1\"")
                                     .arg(datagram.data()));
            }
        }