• UDP协议


    TCP半连接池的原理:

    import socket
    server = socket.socket()
    server.bind("127.0.0.1",3333)
    server.listen(5)

    这里的listen(5)参数5就是最大允许等待连接的ip与端口,会形成一个ip连接请求等待池,池子大小由参数决定,超过范围的客户端将会被拒绝。客户端连接请求超时抛出异常。

    UDP发送数据的工作原理

    import socket
    client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    #不需要创建链接
    #直接发送数据
    #不会因客户端的异常关闭,服务端出现错误
    while True:
        msg = input(">>>:")
        if not msg:continue
        client.sendto(msg.encode("utf-8"),("127.0.0.1",3232))
        data,addr = client.recvfrom(1024)
        print(data.decode("utf-8"))

    客户端

    import socket
    #默认使用TCP协议,当前UDP协议
    server =socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    server.bind(("127.0.0.1",3232))
    #不用监听
    #创建链接
    
    while True:
        #接受数据
        data,addr = server.recvfrom(1024)
        res = data.upper()
        server.sendto(res,addr)#因为没有创建链接,所以发送需要设置发送地址

    服务端

    3. UDP的模板代码 *****
    与TCP代码的区别
    不需要监听 不需要接收
    type参数为 SOCK_DGRAM
    UDP 可以同时处理多个客户端 是因为CPU处理速度快 给人感觉像是同时处理

    UDP协议不会粘包

    缓冲区大小要足够数据包的大小,建议不要超过512

    UDP的使用场景:视频电话,语音电话,直播,DNS域名解析器

  • 相关阅读:
    kuberdm安装
    docker网络
    docker安装及基本使用
    慢日志
    mysql-5.7主从复制
    MySQL-5.6主从复制
    MySQL索引原理
    Kubernetes的kubeadm项目安装部署
    十六、kubernetes之安全实验案例
    十五、Kubernetes之安全配置
  • 原文地址:https://www.cnblogs.com/msj513/p/9917140.html
Copyright © 2020-2023  润新知