IEC MMS协议源码运行

news2024/11/16 10:23:44

环境准备

源码下载链接
https://github.com/mz-automation/libiec61850
我的运行环境是ubuntu虚拟机。
首先进入文件夹根目录进行编译

make clean
make

在这里插入图片描述

server代码的编译和运行

进入examples/serve_example_simpler的目录下编译
在这里插入图片描述
直接执行会发现报错,异常退出。
在这里插入图片描述
经过分析源码,增加打印,发现错误原因是权限不足,绑定端口失败。
在这里插入图片描述
于是换用root权限执行程序,发现程序正常运行。
在这里插入图片描述
为方便调试,可以将调试相关打印的宏打开
在这里插入图片描述
为了方便快速编译,在路径下简单写了脚本

#!/bin/sh
cd ../..
make clean
make
cd examples/server_example_simple/
make clean
make

重新编译运行后效果如下
在这里插入图片描述

client代码的编译和运行

跟server几乎相同的方式,也要用root权限运行。
在这里插入图片描述

抓包分析

抓包我用的是tshark工具。在ubuntu可直接通过命令下载安装。

sudo apt-get install wireshark
sudo apt-get install tshark

之后增加MMS相关协议,方法是

cd .config/wireshark/profiles/
mkdir tshark-mms/
cd tshark-mms/
touch pres_contex 

之后再创建的文件中写入

"3","1.0.9506.2.3"

即可。如图
在这里插入图片描述
之后进行抓包。我用的命令是

sudo tshark -C tshark-mms -i lo -w test.pcap

由于不带参数执行client的程序并没有做多余的操作,所以MMS相关的报文很少。
在这里插入图片描述
可以通过加其他参数运行得到其他报文,例如参数读取等。
在这里插入图片描述
后续有空的话会进行报文的详细分析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1964120.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JLink烧录失败

1. 现象: 这个位置是灰色的,没有SW Device信息。 MDK下面的打印: J-Flash的打印: windows上面的弹框的现象没有截屏。 2. 解决办法: 1.打开J-Link Commander,输入unlock kinetis,看现象不起作用,网…

Python学习笔记48:游戏篇之外星人入侵(九)

前言 到目前为止,飞船,子弹,外星人的创建,移动都已经完成。接下来我们需要完成功能主要就是子弹击中外星人和飞船接触到外星人两个中功能。 碰撞 我们需要实现的功能中,子弹击中外星人和飞船接触外星人本质上就是两…

Navicat For Mysql连接Mysql8.0报错:客户端不支持服务器请求的身份验证协议

windows通过navicat连接本地mysql时报错:Client does not support authentication protocol requested by server; consider upgrading MySQL client 一、问题原因二、解决方法1--失败1. 连接mysql客户端2. 修改加密方式3.正确的解决方法1.查找my.ini文件2.修改my.ini文件3.重…

【读点论文】Object Detection in 20 Years: A Survey,宏观了解大方向发展,常看常新,这篇越看到后面越泛

Object Detection in 20 Years: A Survey Abstract 目标检测作为计算机视觉领域最基本、最具挑战性的问题之一,近年来受到了极大的关注。在过去的二十年里,我们目睹了目标检测技术的快速演进及其对整个计算机视觉领域的深远影响。如果说今天的目标检测…

关于RAG进展|| RankRAG:在大模型中统一检索增强生成的上下文排序

欢迎了解公众号:AI论文解读 背景:探索RankRAG的创新之处 检索增强生成(Retrieval-Augmented Generation, RAG)技术已成为提升大型语言模型(Large Language Models, LLMs)处理知识密集型任务的关键方法。传…

使用AI大模型Kimi轻松助力速通代理IP知识

本文目录 一、 引言二、代理IP介绍2.1 代理IP定义2.2 代理IP的工作原理2.3 代理IP的分类2.4 2.4 为什么需要代理IP? 三、代理IP的使用场景四、如何选择合适的代理IP服务五、使用代理IP的基本步骤六、使用代理IP爬取亚马逊电商信息七、总结八、代码附录 一、 引言 喜…

怎么使用rdma-core进行调用开发?

RDMA (Remote Direct Memory Access) 是一种网络协议,可以在计算节点之间实现高效的内存数据传输,而无需CPU的干预。rdma-core 是 RDMA 的一个用户空间库,提供了一些简单易用的接口来使用 RDMA 功能。 目录: 一、环境准备: 1.1 安装依赖 在安装 rdma-core 之前,确保你的…

token验证

验证客户端传输过来的请求是否合法 try-catch是用来捕获并处理异常的。当你在编写代码时,可能会遇到一些不可预见的情况,这些情况会阻止代码的正常执行,这时就会抛出异常。使用try-catch语句,你可以捕获这些异常并采取相应的措施来…

【OpenCV C++20 学习笔记】形态学变换(morphologyEx)

TOC 理论 开运算 开运算实际上就是腐蚀之后再膨胀,用公式表达就是: d s t o p e n ( s r c , e l e m e n t ) d i l a t e ( e r o d e ( s r c , e l e m e n t ) ) dstopen(src, element) dilate(erode(src, element)) dstopen(src,element)di…

保研408真题练习:2009年全国硕士研究生入学统一考试(单选篇2)

🧊🧊🧊单项选择题(共40道) 🧊操作系统(8道) 🥥1.进程调度算法 高响应比优先调度:选出响应比最高的进程投入执行,响应比R(等待时间+执…

钉钉 钉钉打卡 钉钉定位 2024 免费试用 保用

打卡助手定位 如图,表示开启成功,软件已定位到钉钉打卡位置。 测试显示,高德地图位置已成功修改。 开启助手定位后,观察效果,打卡按钮由无法打卡变为可打卡状态,照片还显示打卡地点。 伙伴们担心作弊行为会…

如何使用nodejs的fsPromise.access()判断文件权限

同学们可以私信我加入学习群! 正文开始 一种错误示范fsPromise.access正确的书写总结 一种错误示范 我们操作文件的时候,经常需要提前判断文件的状态:文件是否存在、文件是否可读、文件是否可写。 查看官网介绍后,按照我们平时的…

WinRAR右键压缩文件功能消失。有什么方法可以恢复吗?

WinRAR作为一款广受欢迎的压缩软件,以其高效、便捷的特点深受用户喜爱。然而,在使用过程中,有时我们可能会遇到右键菜单中WinRAR的压缩文件功能消失的情况,这无疑给我们的文件操作带来了不便。下面小编就来给大家详细介绍当WinRAR…

【C语言】【计算机组成原理】进制转换和原码、反码、补码

目录 一、进制转换 (1)数字进制的4个概念 (2)x进制转换成十进制 (3)十进制转换成x进制(除x取余法) (4)二进制与八进制的相互转换 (5&#xf…

【AI落地应用实战】DAMODEL深度学习平台部署+本地调用ChatGLM-6B解决方案

ChatGLM-6B是由清华大学和智谱AI开源的一款对话语言模型,基于 General Language Model (GLM)架构,具有 62亿参数。该模型凭借其强大的语言理解和生成能力、轻量级的参数量以及开源的特性,已经成为在学术界和工业界引起了广泛关注。 本篇将介…

成为 Spring Boot + Vue 图书作者的必备素养

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导…

Python 使用 Detectron2 进行目标检测 (Detectron2, CenterNet2, Detic)

代码说明 代码主要是一个用来演示如何使用 Detectron2 进行目标检测的脚本。它可以从摄像头或视频文件中读取图像,并应用指定的配置文件进行目标检测。其中,Detectron2 结合了 CenterNet2 和 Detic 进行目标检测。 主要库介绍 Detectron2 Detect…

UMG文本控件(UTextBlock)超过边界区域以后显示省略号

测试版本:UE5.4.1 UMG文本控件超过边界区域以后显示省略号

基于springboot+vue+uniapp的校园快递平台小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

【打家劫舍】python刷题记录

R3-递归篇。第100篇blog. 思路: 和爬楼梯有点相似,每次隔1格,2格,3格----(隔3格就亏了,所以还是类似爬楼梯问题,1格或者2格) class Solution:def rob(self, nums: List[int]) -> int:cur,pre0,0for nu…