• 网络编程-UDP


    UDP

      在使用socket时需要手动传入两个参数

      第一个 AF_INET,第二个 SOCK_DGRAM

      UDP 不需要建立连接,所以没有三次握手和四次挥手

    UDP与TCP的相同点:
      服务器:都需要绑定端口和ip

          recv与recvfrom都有阻塞功能

    UDP与TCP的不同点:

      服务器:UDP不需要监听和接受请求

          TCP服务器默认只能和一个客户端进行通讯

          下一个客户端必须等到上一个断开连接才能被处理

          UDP多个客户端的请求会被依次处理

      客户端:不需要建立连接直接发送即可

          可以发送空消息

      在UDP中客户端和服务器

        接收都是recvfrom

        发送都是sendto

    UDP不会产生粘包问题

      接收方的缓冲区大小即使大于发送方发送的数据长度也不会粘包

      当接收方缓冲区的程度小于数据报的数据长度,Windows会报异常,而Linux不会

      UDP在使用时,必须保证接收的缓冲区大小大于或等于发送的数据报大小

      由于缓冲区的大小不可能无限大,所以UDP不适合在数据量较大的情况下使用

      如果一定要使用UDP来传输大量数据的话,需要自己对数据进行切割和组装

      UDP最大的数据报,受数据帧大小限制,最大为1472字节

      在传输数据量较大时推荐使用TCP

  • 相关阅读:
    滑动窗口算法-2
    滑动窗口算法-1
    工作中缓存使用重点
    QPS的计算方法[转载]
    springAop
    spring配置详述与springboot
    LRU最少使用
    图片压缩
    Javassist使用[转载]
    [转]关于Spring事务嵌套回滚的一些测试总结
  • 原文地址:https://www.cnblogs.com/LinChengcheng/p/10471065.html
Copyright © 2020-2023  润新知