Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

UDP Socket binding problem



  • Hello!
    I'm exploring udp sockets in qt and have a little problem...
    Creating a socket:
    @
    _sock = new QUdpSocket(this);

    if (!_sock->bind(QHostAddress::Any, _port))
    {
    Log::Error("LoginServer","Failed to bind %d",_port);
    return;
    }
    connect(_sock, SIGNAL(readyRead()), this, SLOT(HandleLogin()));
    Log::Trace("LoginServer","LoginServer successfully binded to %d port",_port);
    @

    connecting to socket
    @
    QString str("abc");
    QByteArray hash = QCryptographicHash::hash(str.toUtf8(), QCryptographicHash::Md5);
    QByteArray datagram;
    QDataStream* stream = new QDataStream(&datagram,QIODevice::WriteOnly);
    stream->writeBytes("admin\0",5);
    *stream << hash.toHex();
    quint16 port=3075;
    QHostAddress adr("192.168.1.96");
    qint64 sent=_sock->writeDatagram(datagram,adr,3075);
    @

    Problem:
    if i put instead adr QHostAddress::LocalHost everything is ok connection performed
    but if i put external ip or internal local ip connection don't occured
    port forvarding on my router is set up
    sory for my bad english



  • If the localhost does work it is the connection between the nodes themselves. Maybe try a IP sniffer program to analyse the data on the port your using?


Log in to reply