udp服务端

import socket

# 1. 创建套接字
server_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

#2. bind绑定ip地址和端口,为元祖tuple类型
# ip如果不指明,表示本机的任何一个ip地址
server_addr = ("", 8080)
server_sock.bind(server_addr)

while True:
    # recv方法接收发送过来的数据
    # 返回值为接收到的数据,参数(这里为1024)表示本次收取数据的最大字节数
    # receive_data = server_sock.recv(1024)
    # recvfrom与recv方法类似,不同的是可以将发送数据的客户端的地址也返回
    receive_data, client_addr = server_sock.recvfrom(1024)
    # 注意python3中收到的数据receive_data是bytes类型
    # print(client_addr, ": ", receive_data)
    # 将bytes数据转换为字符串类型
    msg = receive_data.decode("utf-8")
    # 将收到的数据显示输出
    print(client_addr, ": ", msg)
    # 我们假定如果客户端发送了quit,我们就关闭服务端的套接字(即关闭服务端)
    if msg == "quit":
        server_sock.close()
        break

测试

我们暂时还没有写udp客户端,可以用nc命令来作为客户端进行测试。

# -u 表示使用udp协议
# nc -u 服务器ip 服务器端口
nc -u 127.0.0.1 8080

results matching ""

    No results matching ""