1、主机信息查询
查询一个主机的MAC地址和IP地址是网络应用程序中经常用到的功能,Qt提供了QHostInfo和QNetworkInterface类用于此类信息的查询。
QHostInfo类
- localHostName()可获取本机的主机名;
- fromName()通过主机名获取IP地址;
QNetworkInterface类
- allInterfaces返回主机上所有的网络接口列表(每个网络接口可能包含多个IP地址)
- QList allInterfaces(); 返回主机上所有的IP地址的列表
- QList allInterfaces(); 返回主机上所有的网络接口列表
2、TCP通信
TCP(Tansmission Control Protocol)是一种被大多数Internet网络协议(如HTTP或FTP)用于数据传输的低级网络协议,它是可靠地、面向流、面向连接的传输协议,特别适合用于连续数据传输。
TCP通信必须先建立TCP连接,通信分为客户端和服务器端。Qt提供QTcpSocket类和QTcpServer类用于建立TCP通信应用程序。服务器端程序必须使用QTcpServer用于端口监听,建立服务器;QTcpSocket用于建立连接后使用套接字进行通信。
下面的例子实现:服务器端一直监听端口,一旦有客户端连接请求到达,便建立连接,连接建立好后向客户端发送一个字符串,客户端收到该字符串并显示出来
服务器端
server.h
#ifndef SERVER_H
#define SERVER_H
#include <QDialog>
class QTcpServer;
namespace Ui {
class Server;
}
class Server : public QDialog
{
Q_OBJECT
public:
explicit Server(QWidget *parent = 0);
~Server();
private:
Ui::Server *ui;
QTcpServer *tcpServer;
private slots:
void sendMessage();
};
#endif // SERVER_H
server.cpp
#include "server.h"
#include "ui_server.h"
#include <QtNetwork>
Server::Server(QWidget *parent) :
QDialog(parent),
ui(new Ui::Server)
{
ui->setupUi(this);
tcpServer = new QTcpServer(this