您的位置:首页 > 文旅 > 旅游 > 影楼管理系统_有没有网址_百度做免费推广的步骤_西安网站建设公司排行榜

影楼管理系统_有没有网址_百度做免费推广的步骤_西安网站建设公司排行榜

2025/4/18 21:59:36 来源:https://blog.csdn.net/2201_75755162/article/details/146338887  浏览:    关键词:影楼管理系统_有没有网址_百度做免费推广的步骤_西安网站建设公司排行榜
影楼管理系统_有没有网址_百度做免费推广的步骤_西安网站建设公司排行榜

网络编程的本质就是在编写应用层代码。需要传输层支持。而传输层的协议有UDP、TCP等

使用QT网络编程的API,需要在.pro文件中添加network模块,而QT中的控件和其他内容都是包含在QtCore模块中的(默认添加)

QT为什么要划分模块?

Qt是一个庞大的框架,当功能集中放在一块时,如果书写一个简单的程序,没有进行模块划分,那么此时生成的可执行程序就会很大,而其中包含了很多没有使用的功能,性价比太低,不如做模块化处理,按需引入所需要的模块


UDP Socket 

主要的类有:QUdpSocket、QNetworkDatagram。QUdpSocket表示一个UDP的socket文件,QNetworkDatagram表示一个UDP数据报

QUdpSocket
名称类型解释对标原生API
bind(const QHostAddress&,quint16)方法绑定指定端口bind
receiveDategram()方法返回QNetWorkDatagram,读取一个UDP数据报recvfrom
writeDatagram(const QNetworkDataGram&)方法发送一个UDP数据报sendto
readyRead信号收到数据并准备就绪后触发
QNetworkDatagram
名称类型解释对标原生API
QNetworkDatagram(const  QByteArray&,const QHostAddress&,quint16)构造函数通过QByteArray,目标IP地址,目标端口号构造一个UDP数据报,通常用于发送数据时
data()方法获取数据报中内部持有的数据,返回QByteArray
senderAddress()方法获取数据报中包含的对端IP地址recvfrom包含了该功能
senderPort()方法获取数据报中包含的对端的端口号recvfrom包含了该功能

要在QT中编写网络代码需要在.pro文件中添加network

 

端口绑定要在信号槽后面,因为绑定意味着请求可以被收到

服务器逻辑:

 

客户端逻辑:

Tcp Socket:

  •  UDP无连接,不可靠传输,面向数据报
  • TCP有链接,可靠传输,面向字节流

核心类:QTcpServer 和 QTcpSocket

QTcpServer
名称类型说明对标原生API
listen(const QHostAddress&, quint16 port)方法绑定指定的地址和端⼝号,并开始监听.Bind和listen
nextPendingConnection()方法从系统中获取到⼀个已经建⽴好的tcp连接.返回⼀个 QTcpSocket ,表⽰这个客⼾端的连接.通过一个socket对象完成和客⼾端之间的通信.accept
newConnection信号有新的客⼾端建⽴连接好之后触发

QTcpServer ⽤于监听端⼝,和获取客⼾端连接. 

QTcpSocket
名称类型解释对标原生API
readAll()方法读取当前接收缓冲区中的所有数据.返回QByteArray对象.read
write(const QByteArray&)方法把数据写⼊socket中.write
deleteLater方法暂时把socket对象标记为⽆效.Qt会在下个事件循环中析构释放该对象.
deleteLater信号有数据到达并准备就绪时触发.
disconnected信号连接断开时触发.

QTcpSocket用户客户端与服务器的数据交互 

tcp服务端回显界面代码:

tcp客户端回显代码:

HTTP

QNetworkRequest表示一个HTTP请求。

关键类:

  • QNetworkAccessManager
  • QNetworkRequest
  • QNetworkReply。
QNetworkAccessManager
get(const QNetworkRequest& )发起一个HTTP GET请求,返回QNetworkReply对象
post(const QNetworkRequest&,const QByteArray& )发起一个HTTP POST请求,返回QNetworkReply对象

 QTextEdit天然支持对HTML的解析,会对HTML进行解析渲染,最终显示的效果不是原始的HTML

http客户端回显界面代码:

get本身不是阻塞函数,get只负责发送请求,不负责等待响应回来。但response中带有一个finnished信号,通过该信号对应的槽函数来处理响应

 

 

QT多媒体

在Qt中,音频主要通过QSound类实现,但是QSound类只支持wav格式的音频文件,如果想添加音频效果需要将非wav格式的音频文件转换为wav格式。

在编写代码时,需要往.pro文件中添加multimedia模块

API函数
play()播放音频
  • 将声音文件添加到.qrc中 
  • 创建一个Sond对象
  • 调用API函数play

 

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com