qt得到本机ip和创建socket

来源:互联网 发布:黑界扣字滚刀软件 编辑:程序博客网 时间:2024/05/17 21:39

QList<QHostAddress> NetList = QNetworkInterface::allAddresses(); //取得全部信息

        for(int Neti = 0;Neti < NetList.count(); Neti++)
        {
            if(QAbstractSocket::IPv4Protocol==NetList.at(Neti).protocol())//找ip4协议的
            {
                ip=NetList.at(Neti).toString();//如果没有其他ip地址 127.0.0.1也要
                if(NetList.at(Neti).toString() != "127.0.0.1")
                    break;
            }
        }
        if(ip.length()<1){
            QMessageBox::information(this,"失败","得不到本机ip地址不能发送消息!");
            return;
        }
        udpSocket = new QUdpSocket(this);        
        udp=udpSocket->bind(receiveport);
        if(!udp)
        {
            QMessageBox::information(this,"失败","本机绑定2006udp端口失败!");
            return;
        }
        connect(udpSocket, SIGNAL(readyRead()),this, SLOT(dataReceived()));
        connect(udpSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(error(QAbstractSocket::SocketError)));

void DialogCheck::error(QAbstractSocket::SocketError err)
{
    qDebug() << err << "==" << this->udpSocket->errorString();
}

原创粉丝点击