Qt_网络编程

目录

1、Qt的UDP Socket

1.1 用Udp实现服务器 

1.2 用Udp实现客户端 

2、Qt的TCP Socket 

2.1 用Tcp实现服务器

2.2 用Tcp实现客户端

3、Qt的HTTP

3.1使用Qt的HTTP

结语 


前言:

        网络协议是每个平台都必须遵守的,只是不同的平台所提供的网络API不相同,而Qt具有跨平台性,因此Qt对网络编程也封装了一套自己的API。值得注意的是,在使用Qt进行网络编程之前, 需要在项目中的.pro文件中添加network模块。

1、Qt的UDP Socket

        Qt使用UDP通信,需要用到两个类,分别是:1、QUdpSocket,2、QNetworkDatagram。其中在网络通信中关于socket的相关工作都被集成在QUdpSocket类中,而数据传输用到的数据报则用QNetworkDatagram类表示(数据报包括数据内容,对方的端口号、ip地址)。

        QUdpSocket提供的接口介绍如下:

bind(const QHostAddress&, quint16)
绑定端口号、ip地址
receiveDatagram()
返回 QNetworkDatagram,即 对方发送过来的数据报
writeDatagram(const QNetworkDatagram&)
向对方发送一个QNetworkDatagram
readyRead(是一个信号)
在收到数据并准备就绪后触发

        QNetworkDatagram提供的接口介绍如下:

QNetworkDatagram(const QByteArray&, const QHostAddress& , quint16 )
通过 QByteArray, 目标IP地址,目标端⼝号构造⼀个 UDP数据报,通常用于发送数据时
data()
返回QByteArray,表示数据报内部持有的文本
senderAddress()
获取数据报中对方的IP地址
senderPort()
获取数据报中对方的端⼝号

        QByteArray是⼀个字节数组,可以和QString进行相互转换。例如: 使⽤QString的构造函数即可把QByteArray转成QString,使用QString的toUtf8函数即可把QString转成QByteArray

1.1 用Udp实现服务器 

         服务器的界面设计比较简单,因为服务器只需要显示消息即可,服务器回馈给客户端的信息也是程序自动触发的,所以只需要一个QListWidget控件即可,界面设计如下:

        1、首先在widget.h文件中创建一个QUdpSocket对象,代码如下:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QUdpSocket>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void request();//槽函数

private:
    Ui::Widget *ui;
    QUdpSocket* ser;
};
#endif // WIDGET_H

        2、在widget.cpp文件中new出一个QUdpSocket对象给到udp指针,并完成信号readyRead与槽函数的连接,而所有的发送、接收逻辑都在该槽函数中实现。于此同时还要完成绑定,目的是让服务器能够接收到客户端的消息。代码如下:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

安权_code

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

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

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

打赏作者

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

抵扣说明:

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

余额充值