zoukankan      html  css  js  c++  java
  • udp协议

    udp协议

    #udp客户端
    # import socket
    # #udp
    # client=socket.socket(type=socket.SOCK_DGRAM)
    #
    #
    # #直接发
    # client.sendto(b'lqz',('127.0.0.1', 8003))
    # data=client.recvfrom(1024)
    # print(data)
    
    #加入通信循环
    import socket
    #udp
    client=socket.socket(type=socket.SOCK_DGRAM)
    
    while True:
        msg=input('>>:')
        #直接发
        client.sendto(msg.encode('utf-8'),('127.0.0.1', 8003))
        data=client.recvfrom(1024)
        print(data)
    
    #udp服务端
    
    # 基础版本
    # import socket
    # #udp
    # server=socket.socket(type=socket.SOCK_DGRAM)
    #
    # server.bind(('127.0.0.1', 8003))
    # # udp不要建立连接,直接发
    # #需不需要监听?
    # #跟tcp的不是一样的
    # # data=server.recvfrom(1024)
    # data,addr=server.recvfrom(1024)
    # #data 是个元组,第一个参数是数据不部分,第二个参数是客户端地址
    # print(data)
    # server.sendto(data.upper(),addr)
    
    
    #加入通信循环
    
    import socket
    #udp
    server=socket.socket(type=socket.SOCK_DGRAM)
    
    server.bind(('127.0.0.1', 8003))
    
    while True:
        data,addr=server.recvfrom(1024)
        print(data)
        server.sendto(data.upper(),addr)
    

    udp协议是否粘包

    #udp服务端
    
    
    #udp 协议没有粘包问题(udp协议又叫数据报协议),可以发空,tcp不行
    import socket
    server=socket.socket(type=socket.SOCK_DGRAM)
    
    server.bind(('127.0.0.1', 8003))
    while True:
        data,addr=server.recvfrom(1024)
        print(data)
        server.sendto(data.upper(),addr)
    
    # data,addr=server.recvfrom(1024)
    # print(data)
    # data,addr=server.recvfrom(1024)
    # print(data)
    # data,addr=server.recvfrom(1024)
    # print(data)
    # data,addr=server.recvfrom(1024)
    # print(data)
    
    #udp的客户端
    
    import socket
    #udp
    client=socket.socket(type=socket.SOCK_DGRAM)
    
    # while True:
    #     msg=input('>>:')
    #     #直接发
    #     client.sendto(msg.encode('utf-8'),('127.0.0.1', 8003))
    #     data=client.recvfrom(1024)
    #     print(data)
    
    client.sendto('lqz'.encode('utf-8'),('127.0.0.1', 8003))
    client.sendto('hello'.encode('utf-8'),('127.0.0.1', 8003))
    client.sendto('world'.encode('utf-8'),('127.0.0.1', 8003))
    client.sendto(''.encode('utf-8'),('127.0.0.1', 8003))
    #不沾包
    
    #udp的客户端丢包
    
    import socket
    #udp 不会管客户端或者服务端是否收到,它只管发,所以不可靠
    client=socket.socket(type=socket.SOCK_DGRAM)
    
    while True:
        msg=input('>>:')
        #直接发
        client.sendto(msg.encode('utf-8'),('127.0.0.1', 8003))
        # data=client.recvfrom(1024)
        # print(data)
    
    
    
    #udp特点
        #-可以发空(数据报协议,自带头)
        #-客户端和服务端可以有一方没在线(因为不需要建立连接)
    
  • 相关阅读:
    Java JMX 监管
    Spring Boot REST(一)核心接口
    JSR 规范目录
    【平衡树】宠物收养所 HNOI 2004
    【树型DP】叶子的颜色 OUROJ 1698
    【匈牙利匹配】无题II HDU2236
    【贪心】Communication System POJ 1018
    【贪心】Moving Tables POJ 1083
    Calling Extraterrestrial Intelligence Again POJ 1411
    【贪心】Allowance POJ 3040
  • 原文地址:https://www.cnblogs.com/aden668/p/11492668.html
Copyright © 2011-2022 走看看