zoukankan      html  css  js  c++  java
  • 网络基础——基于udp协议的套接字通信

    一、基于udp协议的套接字通讯 

     udp协议server

    # TCP  VS  UDP协议
    # 1、可靠性
    # tcp协议是可靠协议:
    #   对方必须回复一个ack确认信息,才会将自己这端的数据从内存中删除
    
    # udp协议不可靠:
    #   发送一条消息就会立即删除,不管对方是否接收到
    
    # 2、有无链接
    # tcp有链接,udp无链接
    
    # 3、传输数据的效率
    # udp更高
    
    # 4、粘包问题
    # udp协议称之为数据报协议,每次发送都是一个完整的数据报,一个发送唯一对应一个接收
    # 所以udp协议没有粘包问题
    from socket import *
    import time
    
    server = socket(AF_INET, SOCK_DGRAM)
    server.bind(('127.0.0.1', 8080))
    
    while True:
        data, client_addr = server.recvfrom(1024)
        time.sleep(10)
        server.sendto(data.upper(), client_addr)

    udp协议client

    from socket import *
    
    client = socket(AF_INET, SOCK_DGRAM)
    
    while True:
        msg = input('>>: ').strip()
        client.sendto(msg.encode("utf-8"), ('127.0.0.1', 8080))
    
        data, server_addr = client.recvfrom(1024)
        print(data.decode('utf-8'))
    DNS地址不在局域网内
    www.baidu.com
        二级     顶级
    分级查询:不需要存那么多IP地址,分摊压力,保证了域名了唯一性
    DNS有缓存机制
    
    申请一个域名:
    域名跟公网IP关联,同步到dns,
    https://www.cnblogs.com/linhaifeng/articles/5937962.html#_label14
    递归查询,
    找同级别的DNS
    迭代查询,
    
    DNS的查询过程走的就是UDP协议,最大不能超过512个字节。
    时间同步问题:
    NTP服务器(时间服务器)
    集群化作业对时间非常重要
    在linux系统上安装好服务器都要跟阿里云服务器对时间
    加机器,防止单点故障
    
    #编写UDP协议的通讯
    
    tcp必须先启动服务端
    UDP可以发空,但可以收到小元组有IP地址,TCP不行
    UDP不能并发,只能处理完一个再处理下一个
    
    #基于socketserve模块
    
    安全组:就是网络防火墙

      -----33-----

  • 相关阅读:
    mybatis入门
    windows环境下搭建RocketMQ
    主键-雪花算法
    Springboot杂七杂八
    springboot整合webSocket的使用
    sss
    sss
    sss
    sss
    sss
  • 原文地址:https://www.cnblogs.com/guojieying/p/13516988.html
Copyright © 2011-2022 走看看