Linux12-UDP\

ops/2025/3/6 18:07:19/

一、UDP

1.特点:

尽最大努力交付,存在丢包的可能

无连接

面向数据报

机制简单,传输效率高

2.应用场景:

1.画面传输 VNC 直播:要求实时性高、允许数据丢失、

二、TCP

1.特点:

面向数据流(流式套接字)

建立连接

安全可靠的传输协议

        三次握手:TCP建立连接时,需要进行三次握手,确保收发数据前,双方都已准备就绪

        SYN:

        ACK:

        四次挥手:TCP断开连接时,需要进行四次挥手,从而确保通信双方都已收发数据结束。

2.编程

C/S模型:

        客户端:

        socket()//SOCK_STREAM流式套接字

        connect()

        send()

        recv()

        close()

 ssize_t send(int sockfd, const void *buf, size_t len, int flags);
功能:
        发送数据
 参数:
        sockfd:套接字文件描述符
        buf:存放数据空间首地址
        len:数据长度
        flag:属性默认为0 
 返回值:
        成功返回发送字节数
        失败返回-1 
ssize_t recv(int socket,void *buf,size_t len,int flags)
功能:从tcp套接字接受数据

参数:
sockfd:套接字
bu:保存接收数据内容的首地址

len:期待接收到的字节数
flags:0:默认方式

返回值:

成功:实际收到的字节数

        当发送端关闭时,返回时0

失败:-1

        服务端:

        socket()(监听套接字)

        bind()

        listen()(监听:要和服务端建立三次握手的客户端)

        accept()(通信套接字、接收和服务端第一个完成三次握手的客户端,并产生一个通讯套接字)

        recv()

        send()

        close()

  int listen(int sockfd, int backlog);
 功能:
        监听三次握手链接请求
 参数:
        sockfd:套接字文件描述符
        backlog:最多允许等待尚未处理的三次握手链接个数
返回值:
        成功返回0 
        失败返回-1 

 int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

  功能:
          处理三次握手等待队列中的第一个请求并建立一个用来通信的新套接字
参数:
          sockfd:套接字文件描述符
          addr:存放发送端IP地址空间首地址 
          addrlen:想要接收的IP地址的长度 
  返回值:
          成功返回新文件描述符
          失败返回-1 


http://www.ppmy.cn/ops/163660.html

相关文章

【部署】Dockerfile 指令备忘清单(超级详细!)

文章目录 Dockerfile 指令继承继承变量 ENV初始化Onbuild在严格的 shell 中运行命令命令 CMD入口点 ENTRYPOINT元数据 LABELARG.dockerignore 文件主要命令 Dockerfile 示例服务静态网站的最小 Docker 镜像Docker 镜像多阶段构建 参考 这是 Dockerfile 的快速参考备忘单。包含用…

FastGPT 引申:信息抽取到知识图谱的衔接流程

文章目录 信息抽取到知识图谱的衔接流程步骤1:原始信息抽取结果步骤2:数据标准化处理(Python示例)步骤3:Cypher代码动态生成(Python驱动) 关键衔接逻辑说明1. 唯一标识符生成规则2. 数据映射策略…

摄相机标定的基本原理

【相机标定的基本原理与经验分享】https://www.bilibili.com/video/BV1eE411c7kr?vd_source7c2b5de7032bf3907543a7675013ce3a 相机模型: 定义: 内参:就像相机的“眼睛”。它描述了相机内部的特性,比如焦距(镜头的放…

基于Matlab的语音识别系统设计

摘要 在通信技术的不断进步发展下,语音识别技术也取得了令人瞩目的成就,人们对语音识别技术的性能要求也越来越高。语音识别技术是通常以人们说话的内容作为识别对象的一项技术,凭借其安全高效、价格低廉、易于实现等特点,能与其…

深入解析嵌入式硬件设计中的十大总线:特性对比与实战“避坑”指南

深入解析嵌入式硬件设计中的十大总线:特性对比与实战“避坑”指南 目录1. 命运多舛的经典:UART、SPI、IC1.1 UART:简单背后的魔鬼细节1.2 SPI:速度与干扰的平衡木1.3 IC:多主从架构的死亡交叉2. 工业与汽车战场:CAN、LIN、RS-4852.1 CAN总线:差分信号的终极防御2.2 LIN总…

【基础4】插入排序

核心思想 插入排序是一种基于元素比较的原地排序算法,其核心思想是将数组分为“已排序”和“未排序”两部分,逐个将未排序元素插入到已排序部分的正确位置。 例如扑克牌在理牌的时候,一般会将大小王、2、A、花牌等按大小顺序插入到左边&…

【机器学习chp10】降维——(核化)PCA + MDS + lsomap + 拉普拉斯特征映射 + t-NSE + UMAP

目录 一、降维的意义与本质 1、意义 2、本质 3、常见降维方法 (1)线性降维 (2)非线性降维 二、基于重构的降维 1、PCA 2、核化PCA (1)实现过程 步骤一:数据映射与核函数定义 步骤二…

deepseek+mermaid【自动生成流程图】

成果: 第一步打开deepseek官网(或百度版(更快一点)): 百度AI搜索 - 办公学习一站解决 第二步,生成对应的Mermaid流程图: 丢给deepseek代码,或题目要求 生成mermaid代码 第三步将代码复制到me…