1、下载网络试调助手:NetAssist
    NetAssist,用于接受或者发送数据,与Python进行通信
    image.png
    2、UDP发送数据程序代码

    1. import socket
    2. def main():
    3. # 1、创建一个udp套接字
    4. udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    5. # 从键盘获取数据
    6. send_data = input("请输入发送内容:")
    7. # 使用套接字收发数据
    8. udp_socket.sendto(send_data.encode("utf-8"), ("127.0.0.1", 8888))
    9. # 5、关闭套接字
    10. udp_socket.close()
    11. if __name__ == "__main__":
    12. main()

    send_data是从键盘接受的收据,必须是二进制的,如果只是单纯的数据变量的话,那就必须用

    1. udp_socket.sendto(b"需要发送的内容",("127.0.0.1",8888))
    2. udp_socket.sendto("需要发送的内容".encode("GB2312"),("127.0.0.1",8888))

    image.png
    如果要重复接收发送数据,那么就要用判断循环语句

    1. import socket
    2. def main():
    3. # 1、创建一个udp套接字
    4. udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    5. while True:
    6. # 从键盘获取数据
    7. send_data = input("请输入chongfu发送内容:")
    8. # 判断结束
    9. if send_data == "exit":
    10. break
    11. # 使用套接字收发数据
    12. udp_socket.sendto(send_data.encode("GB2312"), ("127.0.0.1", 8888))
    13. # 5、关闭套接字
    14. udp_socket.close()
    15. if __name__ == "__main__":
    16. main()

    3、UDP接收数据

    1. from socket import *
    2. def main():
    3. # 1、创建一个udp套接字
    4. udp_socket = socket(AF_INET, SOCK_DGRAM)
    5. # 2、绑定本地相关信息,如果不绑定,则随机分配
    6. local_addr = ('', 7788) # ip地址和端口号,IP不写表示本机任何一个ip
    7. udp_socket.bind(local_addr)
    8. # 3、等待接收对方发送的数据
    9. recv_data = udp_socket.recvfrom(1024) # 1024表示本次接收的最大字节
    10. # recv_data存储的是一个元组(发送方ip,Port)
    11. recv_msg = recv_data[0]
    12. send_addr = recv_data[1]
    13. # 4、显示接收到的数据
    14. print("%s:%s" % (str(send_addr), recv_msg.decode("gbk")))
    15. udp_socket.close()
    16. if __name__ == "__main__":
    17. main()

    测试结果
    image.png

    4、UDP案例

    1. # -*- coding: utf-8 -*-
    2. import socket
    3. def send_msg(udp_socket):
    4. # 获取要发送的内容
    5. dest_ip = input("输入对方IP:")
    6. dest_port = int(input("输入对方port:"))
    7. send_data = input("输入发送内容:")
    8. udp_socket.sendto(send_data.encode("gbk"), (dest_ip, dest_port))
    9. def recv_msg(udp_socket):
    10. # 接收数据
    11. recv_data = udp_socket.recvfrom(1024)
    12. print("%s:%s" % (str(recv_data[1]), recv_data[0].decode("gbk")))
    13. def main():
    14. # 创建套接字
    15. udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    16. # 绑定信息
    17. udp_socket.bind(("", 7788))
    18. # 循环处理
    19. while True:
    20. print("---------聊天室----------")
    21. print("1:发送消息")
    22. print("2:接收消息")
    23. print("0:退出系统")
    24. op = input("请输入功能:")
    25. if op == "1":
    26. # 发送
    27. send_msg(udp_socket)
    28. elif op == "2":
    29. # 接收并显示
    30. recv_msg(udp_socket)
    31. elif op == "0":
    32. break
    33. else:
    34. print("输入有误!")
    35. if __name__ == "__main__":
    36. main()

    ref
    https://blog.csdn.net/qq285679784/article/details/109242101