网络通信(传输层协议:TCP/IP ,UDP):
Socket是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。
网络协议:一台电脑的数据怎么传递给另一台电脑,是由网络协议来规定的
端口号:类似于办事窗口,是在计算机网络中用于区分不同服务或应用程序的一种数字标识。每个正在运行的程序或服务都会监听或绑定到一个或多个端口号上,以便接收来自网络的数据包。
客户端软件从端口号发给服务器,服务器内的服务器软件会识别是哪个软件发出的,调用软件对应的处理
Socket主要分为以下几种类型:
-
流式套接字(TCP Socket):
- 提供可靠的、面向连接的通信。
- 数据按顺序传输,不丢失。
- 建立连接时需要三次握手,断开时需要四次挥手。
- 适用场景:文件传输、Web服务等。
-
数据报套接字(UDP Socket):
- 提供快速但不可靠的通信。
- 无需建立连接,直接发送数据。
- 数据可能丢失,适合对速度要求高的场景。
- 适用场景:实时音视频、在线游戏等。
TCP:面向连接的流式协议,数据安全,3次握手4次挥手,双向连接,双向断开,有数据校验机制
TCP的通信流程:
UDP:面向无连接报式协议,数据不安全,不需要连接,报文要是丢包就全丢了
TCP的通信流程:
-
QTcpServer(监听套接字)和QTcpSocket(通讯套接字)
在项目的配置文件内添加
QT += core gui network
在类名上按ALT+回车可实现添加包含文件#include <QTcpSocket>