当前位置: 首页 > article >正文

Linux12-UDP\

一、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.kler.cn/a/570602.html

相关文章:

  • 打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第一天)
  • go语言逆向-符号恢复
  • iOS逆向工程概述与学习路线图
  • Mysql面试篇笔记:
  • 【Python】在Windows下配置Python最小环境并在React执行Python脚本
  • SpringCloud系列教程(十一):token验证
  • unidbg 实现 JNI 与 Java 交互
  • ffmpeg源码编译支持cuda
  • PyCharm 对接 DeepSeek 大模型的详细操作流程
  • ArcGIS操作:11 计算shp矢量面的质心坐标
  • 【JAVA】ThreadPoolTaskExecutor 线程池学习、后端异步、高并发处理
  • ArcGIS操作:08 计算shp面积并添加到属性表
  • 解释 CSS 盒模型的概念以及如何使用 box-sizing 属性
  • 厦大团队|报告:《读懂大模型概念、技术与应用实践》140 页 PPT(文末附链接下载)
  • 知识图谱的推荐实现方案(Vue)
  • 泛型边界的使用
  • Linux 基础---文件权限
  • 费曼学习法12 - 告别 Excel!用 Python Pandas 开启数据分析高效之路 (Pandas 入门篇)
  • 【iOS】关于自动引用计数的认识
  • Win10环境借助DockerDesktop部署单节点Redis6