QT开发之IP协议

来源:互联网 发布:广联达软件下载教程 编辑:程序博客网 时间:2024/05/29 16:52

IP协议就不讲了,以前在Linux网络编程这一块讲的非常清楚了,这篇文章只是一个演示怎么在QT中去使用库函数来运用IP相关的操作.


新建Qt  Gui应用项目,名称为myIP,其他类保持默认,在工程文件中添加QT  += network


mian.cpp

#include <QtGui/QApplication>#include "mainwindow.h"int main(int argc, char *argv[]){    QApplication a(argc, argv);    MainWindow w;    w.show();        return a.exec();}

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>class QHostInfo;namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{    Q_OBJECT    public:    explicit MainWindow(QWidget *parent = 0);    ~MainWindow();    private:    Ui::MainWindow *ui;private slots:    void lookedUp(const QHostInfo &host);};#endif // MAINWINDOW_H

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QtNetwork>#include <QDebug>MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);#if 0    QString localHostName = QHostInfo::localHostName();    QHostInfo info = QHostInfo::fromName(localHostName);    qDebug() << "localHostName = " << localHostName << endl             << "IP:" << info.addresses();#else    QList<QNetworkInterface> list=QNetworkInterface::allInterfaces();    foreach(QNetworkInterface interface,list)    {        qDebug() << "Name:" << interface.name();        qDebug() << "HardwareAddress:" << interface.hardwareAddress();        QList<QNetworkAddressEntry> entryList = interface.addressEntries();        foreach(QNetworkAddressEntry entry ,entryList)        {            qDebug() << "IP Address:" << entry.ip().toString();            qDebug() << "NetMask:" << entry.netmask().toString();            qDebug() << "Broadcast:" << entry.broadcast().toString();        }    }#endif    QHostInfo::lookupHost("www.baidu.com",this,SLOT(lookedUp(QHostInfo)));}MainWindow::~MainWindow(){    delete ui;}void MainWindow::lookedUp(const QHostInfo &host){    if(host.error()!=QHostInfo::NoError)    {        qDebug() << "Lookup failed:" << host.errorString();        return;    }    foreach(QHostAddress address,host.addresses())    {        if(address.protocol()==QAbstractSocket::IPv4Protocol)            qDebug() <<  "Found address:" << address.toString();    }}


2 0
原创粉丝点击