QUdpSocket nie odbiera danych

0

Witam

Potrzebuje nawiązać komunikacje poprzez protokół UDP. Robię wszystko zgodnie z tutorialem, ale niestety nie dostaję żadnej odpowiedzi. Dodam, że w alternatywnym programie wszystko działa, więc to na pewno nie wina systemu, czy firewall. Działa również jeśli jako adres hosta użyję LocalAdres, więc dostaje to co wysyłam.
Dotarłem do tematu
http://stackoverflow.com/questions/13773374/qudpsocket-cannot-receive-datagram
W którym jest powiedziane, że może to wynikać z kolejności działania, czyli slot po sygnale readyRead(), jest połączony przed bindowaniem. Zastosowałem się do porady, jednak również nie dostaje odpowiedzi.

 // konstruktor klasy
// add pewny adres
socket = new QUdpSocket(this);
socket->bind(add,  1200);
QObject::connect(socket , SIGNAL(readyRead()) , SLOT(SLOT_rr()));

metoda do wysyłania danych

 void MW::cn()
{
    QByteArray array;
    array.append("gS");
    socket->writeDatagram(array ,add,  1200); 
    qd"wyslane";

}

slot do odbiory danych po sygnale

void MW::SLOT_rr()
{
    QByteArray array;
    array.resize(socket->pendingDatagramSize());
    QHostAddress adress;
    quint16 port;
    socket->readDatagram(array.data() , array.size() , &adress , &port);
    QString str(array);

    QMessageBox msgBox;
    msgBox.setText(adress.toString()+str);
    msgBox.exec();
    qd "odbior" << array;
    qd "adres" << adress.toString();
    qd "port" << port;
}

no i main

MW *klasa = new MW();
klasa->cn();
0

Według mnie zasadniczą częścią slotu powinna być pętla:

while(socket->hasPendingDatagrams())
{
// tutaj dopiero kod przetwarzania
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1