了解网络中的一些概念

Qt中一些处理网络相关的类

QFtp等类来实现特定的应用层协议
QTcpSocket、QTcpServer和QUdpSocket等来表示低层的网络概念
QNetworkRequest、QNetworkReply和QNetworkAccessManager使用相同的协议来执行网络操作
QNetworkConfiguration、QNetworkConfigurationManager和QNetworkSession等类来实现负载管理

Qt中使用QNetworkAccessManager类和QNetworkReply类来进行HTTP的编程
络请求由QNetworkRequest类来表示,它也作为与请求有关的信息(例如,任何头信息和使用加密)的容器
创建请求对象时指定的URL决定了请求使用的协议,目前支持HTTP、FTP和本地文件URLs的上传和下载
QNetworkAccessManager类用来协调网络操作,每当一个请求创建后,该类用来调度它,并发射信号来报告进度。该类还协调cookies的使用,身份验证请求,及其代理的使用等
对于网络请求的应答使用QNetworkReply类表示,它会在请求被完成调度时由QNetworkAccessManager来创建


关于HTTP,FTP; TCP/IP,UDP, Socket的一些解释

HTTP(HyperText Transfer Protocol,超文本传输协议)是一个客户端和服务器端请求和应答的标准
HTTP是在网络上传输HTML的协议,用于浏览器和服务器的通信
响应代码:200表示成功,3xx表示重定向,4xx表示客户端发送的请求有错误,5xx表示服务器端处理时发生了错误
FTP即FileTransfer Protocol,也就是文件传输协议
UDP(UserDatagram Protocol即用户数据报协议)是一个轻量级的,不可靠的,面向数据报的无连接协议
Socket简单地说,就是一个IP地址加一个port端口,socket指明了数据报传输的路径
对于端口号,它是可以随意指定的,但是一般1024以下的端口号通常属于保留端口号,所以我们最好使用大于1024的端口,最大为65535

TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有TCP协议与UDP协议。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。
TCP 是基于 TCP 协议实现的网络文本协议,属于传输层。
UDP 是和TCP 对等的,属于传输层,UDP 和 TCP 有重要的区别。


TCP即TransmissionControl Protocol,传输控制协议。与UDP不同,它是面向连接和数据流的可靠传输协议。
也就是说,它能使一台计算机上的数据无差错的发往网络上的其他计算机,所以当要传输大量数据时,我们选用TCP协议
网络通信是两台计算机上的两个进程之间的通信
互联网协议包含了上百种协议标准,但是最重要的两个协议是TCP和IP协议,所以,大家把互联网的协议简称TCP/IP协议
IP地址对应的实际上是计算机的网络接口,通常是网卡
IP协议负责把数据从一台计算机通过网络发送到另一台计算机
路由器就负责决定如何把一个IP包转发出去。IP包的特点是按块发送,途径多个路由,但不保证能到达,也不保证顺序到达
TCP协议则是建立在IP协议之上的。TCP协议负责在两台计算机之间建立可靠连接,保证数据包按顺序到达。
TCP协议会通过握手建立连接,然后,对每个IP包编号,确保对方按顺序收到,如果包丢掉了,就自动重发。
许多常用的更高级的协议都是建立在TCP协议基础上的,比如用于浏览器的HTTP协议、发送邮件的SMTP协议等
一个TCP报文除了包含要传输的数据外,还包含源IP地址和目标IP地址,源端口和目标端口
通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可

猜你喜欢

转载自blog.csdn.net/yuxing55555/article/details/87969177