使用python:循环发送测试报文

发布时间:2026/10/3 21:55:53

使用python:循环发送测试报文 情景使用python:循环发送测试报文udp 单播本机192.9.2.77 接收端口: 6000 发送端口:6001对方 : 192.9.2.78 接收端口 6000 发送端口:6001编写一个程序两个电脑运行一个是本机一个是对方。本机与对方的区别只是ip地址不同。把ip地址以配置文件形式来存储吧。逻辑本机接收到数字a则返回a1.对方逻辑与本机一样接收到数字a,则返回a1.接收到信息后延时一秒再发送。网络拓扑┌─────────────────────┐ UDP ┌─────────────────────┐ │ 本机 PC1 │ (单播通信) │ 对方 PC2 │ │ IP: 192.9.2.77 │ ◄──────────────────► │ IP: 192.9.2.78 │ │ │ │ │ │ 接收端口: 6000 │ │ 接收端口: 6000 │ │ 发送端口: 6001 │ │ 发送端口: 6001 │ └─────────────────────┘ └─────────────────────┘核心逻辑两台电脑运行同一个程序唯一的区别是配置文件中的IP 地址不同。通信流程程序在6000端口监听接收数据接收到数字a后延时 1 秒从6001端口向对方的6000端口发送a1循环往复这样两台机器互相 ping-pong数字不断递增1 → 2 → 3 → 4 → ...模拟测试一个是windows另一个是虚拟机里的Debian# -*- coding: utf-8 -*- UDP 单播 ping-pong 测试程序 - 本机接收端口 recv_port(6000)发送端口 send_port(6001) - 收到数字 a延时 1 秒后返回 a1 - 输入 send 发送起始数字 1 - CtrlC 退出 import socket import time import json import threading def load_config(pathconfig.json): with open(path, r, encodingutf-8) as f: return json.load(f) def recv_loop(recv_sock, send_sock, peer_ip, recv_port): 接收线程收到数字 a - 延时1秒 - 发送 a1 while True: try: data, addr recv_sock.recvfrom(1024) msg data.decode(utf-8, errorsignore).strip() try: num int(msg) except ValueError: print(f\n[警告] 收到非数字数据: {msg!r} (来自 {addr[0]}:{addr[1]})) continue print(f\n[接收] 来自 {addr[0]}:{addr[1]} 的数字: {num}) time.sleep(1) reply num 1 send_sock.sendto(str(reply).encode(utf-8), (peer_ip, recv_port)) print(f[发送] 延时1秒后回复: {reply} - {peer_ip}:{recv_port}) print( , end, flushTrue) except OSError: break except Exception as e: print(f\n[错误] 接收线程异常: {e}) break def main(): cfg load_config() local_ip cfg[local_ip] peer_ip cfg[peer_ip] recv_port cfg[recv_port] send_port cfg[send_port] # 接收 socket绑定本机接收端口 recv_sock socket.socket(socket.AF_INET, socket.SOCK_DGRAM) recv_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) recv_sock.bind((local_ip, recv_port)) print(f[接收] 已绑定 {local_ip}:{recv_port}) # 发送 socket绑定本机发送端口源端口固定为 send_port send_sock socket.socket(socket.AF_INET, socket.SOCK_DGRAM) send_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) send_sock.bind((local_ip, send_port)) print(f[发送] 已绑定 {local_ip}:{send_port}) print(f[信息] 对方接收地址: {peer_ip}:{recv_port}) print([提示] 输入 send 发送起始数字(1)CtrlC 退出) print( , end, flushTrue) # 启动接收线程 recv_thread threading.Thread( targetrecv_loop, args(recv_sock, send_sock, peer_ip, recv_port), daemonTrue, ) recv_thread.start() # 主线程处理用户输入 try: while True: cmd input().strip() if cmd.lower() send: first_num 1 send_sock.sendto(str(first_num).encode(utf-8), (peer_ip, recv_port)) print(f[发送] 起始发送: {first_num} - {peer_ip}:{recv_port}) elif cmd : pass else: print(f[提示] 未知命令: {cmd!r}请输入 send) print( , end, flushTrue) except KeyboardInterrupt: print(\n[退出] 收到 CtrlC正在关闭...) finally: recv_sock.close() send_sock.close() print([退出] 程序已结束) if __name__ __main__: main()config.json{ local_ip: 192.168.68.1, peer_ip: 192.168.68.132, recv_port: 6000, send_port: 6001 }
延伸阅读

更多相关文章

2026/10/3 21:50:53

React协调机制深度解析:Fiber、Lane与并发渲染原理

1. 为什么“协调”不是“渲染”,而是一切性能优化的起点 如果你在面试中被问到“React更新时到底发生了什么”,十有八九会听到“虚拟DOM比对”“diff算法”这类回答——但这是个流传甚广的误解。React官方文档早已明确指出: Reconcile&#…

2026/10/3 21:50:53

superpowers实战:构建可编排的AI编程代理能力体系

1. 项目整体思路与核心设计拆解1.1 为什么需要 superpowers:从"能跑通"到"稳定交付"先聊一个我实际撞见过的场景。很多人在用 AI 编程代理(比如 Codex 这类工具)干活时,都有过类似的体验:让它改一…

2026/10/3 21:50:53

SpringBoot debug实战:从自动装配到最小链路跑通

【SpringBoot香樟转转】debugDay01从零搭一个校园二手交易平台,第一天全在跟报错较劲。在做“香樟转转”这个 SpringBoot 项目之前,我其实有过心理准备,但真到了写代码调试的阶段,才发现问题的密度远超预期。这篇文章就把 Day01 这…

2026/10/3 23:00:59

具身智能中的协同机理(30):TVA与世界模型实时同步关键技术研究

前沿技术探索:TVA智能体(简称TVA) TVA智能体(亦称“AI智能体视觉”)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习(DRL)、卷积神经网络(CNN)与因式分解算法(FRA),构成了具身智…

2026/10/3 23:00:59

train-sentence-transformers - evaluators_sentence_transformer

评估器(双编码器) 所有双编码器评估器都位于 sentence_transformers.sentence_transformer.evaluation 中。 选择合适的评估器任务评估器检索(nDCG、MRR、Recall)——快速默认NanoBEIREvaluator在自有语料库 / qrels 上检索Inform…

2026/10/3 22:55:59

Arnis 完整指南:如何用真实地图三步生成 Minecraft 城市

Arnis 完整指南:如何用真实地图三步生成 Minecraft 城市 【免费下载链接】arnis Generate any location from the real world in Minecraft with a high level of detail. 项目地址: https://gitcode.com/GitHub_Trending/ar/arnis Arnis 是一款开源的 Minec…

2026/10/2 8:16:46

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/10/2 18:20:53

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/3 15:02:19

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/3 0:04:31

国内大学生必备的AI写作辅助软件是哪款?

国内高校学生在论文写作过程中,越来越依赖AI辅助工具提升效率,主流方案以本土化全流程工具为核心,结合通用大模型与专业插件,覆盖选题构思、框架搭建、初稿撰写、查重降重、格式调整等关键环节,本文将深入解析当前主流…

2026/10/3 0:04:31

Codex接入Jev模型完整指南:配置方法、本地部署与踩坑排查

最近不少人在讨论 Codex 搭配 Jev 这套玩法,我一开始没太当回事,直到自己把 Jev 接进 Codex跑了几轮编码任务之后,才明白那些说“直接起飞”的人是怎么想的。Codex 作为工具本身已经够能打了,但模型固定、上下文策略固定&#xff…

2026/10/3 0:04:31

GitHub 热门: NVIDIA/Model-Optimizer

👋 Hi,我擅长 AI 大模型应用落地、意识解码与 AI 开发工具链 。 💡 创业路上,用技术换时间,一起把 AI 变成生产力 🚀 >GitHub 热门: NVIDIA/Model-Optimizer 凌晨两点,你刚把跑通了的 Qwen3.…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑