UDP TCP 协议相同点:都存在于传输层,全双工通信
1.1 TCP:全双工通信、面向连接、可靠
TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)。
高可靠原因:1. 三次握手、四次挥手
- 序列号和应答机制
- 超时,错误重传机制
- 拥塞控制、流量控制(滑动窗口)
适用场景
适合于对传输质量要求较高的通信
在需要可靠数据传输的场合,通常使用TCP协议
即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议
1.2 UDP:全双工通信、面向无连接、不可靠
UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。
适用场景
发送小尺寸数据(如对DNS服务器进行IP地址查询时)
适合于广播/组播式通信中。
以及音视频通讯通常采用UDP协议
1.3 IP地址
IP地址是Internet中主机的标识,Internet中的主机要与别的机器通信必须具有一个IP地址,IP地址为32位(IPv4)或者128位(IPv6),IPV4表示形式:常用点分十进制形式,如202.38.64.10,最后都会转换为一个32位的无符号整数。
1.4 端口号
● 为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号来区分
● TCP端口号与UDP端口号独立(UDP port为8888,TCP port也可为8888 )
● 端口号一般由IANA (Internet Assigned Numbers Authority) 管理
● 端口用两个字节来表示
众所周知端口(被占用):1~1023(1~255之间为众所周知端口,256~1023端口通常由UNIX系统占用)
已登记端口:1024~49151(—-可用来建立与其它主机的会话—-)
动态或私有端口:49152~65535 –固定某些服务使用–
补充,Qt建议使用端口号:
- 2000+
- 避免连号,例如8888/6666等

与数据库编程一样,Qt的网络编程之前需要先在.pro文件中增加网络模块。

Qt网编主要用到以下几个类:
- QTcpServer

基于TCP的Socket服务器连接管理类,本身不继承QIODevice,因此无法进行IO操作。
- QTcpSocket

基于TCP的Socket连接类,间接继承了QIODevice,是实现IO的TCP类。
- QTextStream | QByteArray
数据传输的方式,前者为更加封装类型,适合Qt之间进行通信;后者为字节数组,适用性更广泛一些。

网络编程中使用的相关函数如下:
讯享网
讯享网
讯享网
讯享网
讯享网
讯享网
讯享网
讯享网
讯享网



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/137614.html