QTcpSocket、QTcpServer实现TCP通信

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kevin_org

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值