1、下载网络试调助手:NetAssist
NetAssist,用于接受或者发送数据,与Python进行通信
2、UDP发送数据程序代码
import socket
def main():
# 1、创建一个udp套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 从键盘获取数据
send_data = input("请输入发送内容:")
# 使用套接字收发数据
udp_socket.sendto(send_data.encode("utf-8"), ("127.0.0.1", 8888))
# 5、关闭套接字
udp_socket.close()
if __name__ == "__main__":
main()
send_data是从键盘接受的收据,必须是二进制的,如果只是单纯的数据变量的话,那就必须用
udp_socket.sendto(b"需要发送的内容",("127.0.0.1",8888))
或
udp_socket.sendto("需要发送的内容".encode("GB2312"),("127.0.0.1",8888))
如果要重复接收发送数据,那么就要用判断循环语句
import socket
def main():
# 1、创建一个udp套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
# 从键盘获取数据
send_data = input("请输入chongfu发送内容:")
# 判断结束
if send_data == "exit":
break
# 使用套接字收发数据
udp_socket.sendto(send_data.encode("GB2312"), ("127.0.0.1", 8888))
# 5、关闭套接字
udp_socket.close()
if __name__ == "__main__":
main()
3、UDP接收数据
from socket import *
def main():
# 1、创建一个udp套接字
udp_socket = socket(AF_INET, SOCK_DGRAM)
# 2、绑定本地相关信息,如果不绑定,则随机分配
local_addr = ('', 7788) # ip地址和端口号,IP不写表示本机任何一个ip
udp_socket.bind(local_addr)
# 3、等待接收对方发送的数据
recv_data = udp_socket.recvfrom(1024) # 1024表示本次接收的最大字节
# recv_data存储的是一个元组(发送方ip,Port)
recv_msg = recv_data[0]
send_addr = recv_data[1]
# 4、显示接收到的数据
print("%s:%s" % (str(send_addr), recv_msg.decode("gbk")))
udp_socket.close()
if __name__ == "__main__":
main()
测试结果
4、UDP案例
# -*- coding: utf-8 -*-
import socket
def send_msg(udp_socket):
# 获取要发送的内容
dest_ip = input("输入对方IP:")
dest_port = int(input("输入对方port:"))
send_data = input("输入发送内容:")
udp_socket.sendto(send_data.encode("gbk"), (dest_ip, dest_port))
def recv_msg(udp_socket):
# 接收数据
recv_data = udp_socket.recvfrom(1024)
print("%s:%s" % (str(recv_data[1]), recv_data[0].decode("gbk")))
def main():
# 创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定信息
udp_socket.bind(("", 7788))
# 循环处理
while True:
print("---------聊天室----------")
print("1:发送消息")
print("2:接收消息")
print("0:退出系统")
op = input("请输入功能:")
if op == "1":
# 发送
send_msg(udp_socket)
elif op == "2":
# 接收并显示
recv_msg(udp_socket)
elif op == "0":
break
else:
print("输入有误!")
if __name__ == "__main__":
main()
ref
https://blog.csdn.net/qq285679784/article/details/109242101