Java实现SDN拓扑获取
Java实现SDN拓扑获取
思路
- 由于
Java
调用北向接口过程复杂,故此处编写Python
脚本获取拓扑 - 使用
Jython
包完成Pyhon
脚本的调用 - 考虑到
Python
和Java
的数据结构难以直接转换,这里选择将脚本获取的拓扑用无向图的形式保存本地文件topo.txt
- 通过
Java
读取本地文件,并进行处理分析,发送到前端
实现
Python脚本编写
-
引入相关包
此处利用了
networkx
的Graph
图结构;json
用于将数据转化为字典集;sdn_net是之前写的流表下发和拓扑抽象的脚本,此处引用其中的函数其实就是懒 -
调用北向接口获取链路信息
这里使用了
Graph
做无向图,解决了链路双向的处理问题 -
写入本地文件
因为每次获取链路的状态应更新原来的状态,所以需要每次清空文件再进行写入
此处如果不写明topo.txt的绝对路径,在之后的
Java
调用中会默认保存到Java
项目目录下 -
文件形式改为
Json
和前端兄弟商定后,要达到如下效果
故改装代码
Json
对于前端操作更加方便,此处改用Json
存储
Java调用Python脚本
-
导入
Jython
包(虽然没用上,
万一以后有用呢)-
在Jython官网下载,得到安装包,使用口令进行安装
-
到安装位置找到
jython.jar
复制放入src->lib
-
右键
lib
,选择add as library
即可完成载入
-
-
Java
调用get_topo.py
-
启用
Runtime.getRuntime().exec()
函数,由于是在Linux
系统下进行,需要修改参数这里的命令行如果含有空格或
|
需要组合成String
形式导入,否则命令不运行
-
__EOF__

本文作者:ch3uhx9
本文链接:https://www.cnblogs.com/cheuhxg/p/14352930.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/cheuhxg/p/14352930.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix