如何修改Python单UDP套接字发包代码,实现多套接字多端口发数据包
Python UDP多套接字多端口发包修改方案
需要调整的核心部分
- 新增套接字数量配置项,指定需要同时使用的UDP套接字个数
- 新增本地端口绑定逻辑,为每个新创建的UDP套接字分配不同的本地端口(可手动指定不冲突的端口段,也可以留空让操作系统自动分配,避免端口占用报错)
- 批量创建套接字并统一存储,替换原有单个套接字的声明逻辑
- 修改发包循环逻辑,轮询使用不同的套接字发送数据包,实现多端口发送效果
- 新增批量关闭套接字的逻辑,替换原有单个套接字关闭的代码
修改后完整代码示例
import socket # 目标地址配置 ADDRESS = ("192.168.0.100", 4119) # 发送的数据包内容 DATA = bytes.fromhex("AA AA AA AA") # 配置需要创建的UDP套接字数量(即使用多少个不同本地端口发送) SOCKET_COUNT = 10 # 存储所有创建好的套接字 socket_list = [] # 批量创建套接字 for i in range(SOCKET_COUNT): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0) # 绑定本地端口,传0表示让操作系统自动分配可用端口,保证端口不重复 # 如果需要手动指定端口,可以改为 s.bind(("0.0.0.0", 50000 + i)),需确保指定端口未被占用 s.bind(("0.0.0.0", 0)) s.connect(ADDRESS) socket_list.append(s) # 轮询使用不同套接字发送数据 for i in range(0, 99999999): current_socket = socket_list[i % len(socket_list)] current_socket.send(DATA) # 批量关闭所有套接字 for s in socket_list: s.close()
注意:本代码仅用于合法的网络测试场景,请勿用于非法违规用途。
内容的提问来源于stack exchange,提问作者DownTop_oil
相关产品推荐
相关产品推荐

