基于UDP协议的socket套接字编程

一、基于UDP协议的socket套接字编程

socket套接字包括使用TCP协议和UDP协议进行通讯

1.1 用法

socket指定使用UDP通讯协议server = socket.socket(socket.AF_INET, type=socket.SOCK_DGRAM)

发送udp数据server.sendto(发送数据)

接收udp数据data, addr = server.recvfrom(1024)

1.2 udp协议的特点

  1. 可以发空数据(数据报协议,有头)
  2. 不需要建连接
  3. 不会粘包
  4. 不可靠(客户端,服务器谁断开都不受影响)

1.3 实例

服务端

HOST = "127.0.0.1"
POST = 8080

if __name__ == '__main__':
    # udp服务器
    server = socket.socket(socket.AF_INET, type=socket.SOCK_DGRAM)  # 指定udp协议进行通讯。
    server.bind((HOST,POST))
    while 1:
        data, addr = server.recvfrom(1024)
        print(data.upper().decode("utf8"))
        server.sendto(data.upper(),addr)

客户端

HOST = "127.0.0.1"
POST = 8080

if __name__ == '__main__':
    # udp客户端
    client = socket.socket(socket.AF_INET, type=socket.SOCK_DGRAM) # 指定udp协议进行通讯。
    while 1:
        msg = input("请输入>>:")
        # 直接发
        client.sendto(msg.encode("utf8"),(HOST,POST))
        data=client.recvfrom(1024)[0]   # 是个元祖
        print(data.decode("utf8"))
原文地址:https://www.cnblogs.com/XuChengNotes/p/11492450.html