惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
N
Netflix TechBlog - Medium
P
Proofpoint News Feed
D
Docker
J
Java Code Geeks
L
LangChain Blog
Microsoft Security Blog
Microsoft Security Blog
The GitHub Blog
The GitHub Blog
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
月光博客
月光博客
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
Blog — PlanetScale
Blog — PlanetScale
Google DeepMind News
Google DeepMind News
腾讯CDC
罗磊的独立博客
U
Unit 42
爱范儿
爱范儿
Vercel News
Vercel News
MyScale Blog
MyScale Blog

博客园 - K.NET

集群系统运营数据的处理重构 日志分析工具 地图组件 集群通信系统客户端 网管接口重构(2014年) 网管职责重构(2014年) 用例要素(非原创) 边界接口设计 项目管理平台架构 内外网邮件自动转发 GIS服务器需求分析 集群通信应用开发吐槽(2014年) 讯飞语音 - 贾维斯 2014年终工作总结 通用访问 - 用“反射”来设计通用的通信协议,以及配套的SDK、工具 知识库201608 追求卓越 - 整合调试过程 站在客户视角,精简软件,整合软件 书单目录
报文分析 - 抓包
K.NET · 2016-08-02 · via 博客园 - K.NET

界面演示






核心接口

  1. public interface I项目
  2. {
  3. M项目 获取项目();
  4. void 保存当前映射(List<M设备映射> 当前通信);
  5. }
  1. public class M项目
  2. {
  3. [DBKey]
  4. public Int64 Id { get; set; }
  5. public string 名称 { get; set; }
  6. public List<M设备映射> 设备通信模板 { get; set; }
  7. public List<M设备映射> 当前通信设备 { get; set; }
  8. public List<string> 业务类型列表 { get; set; }
  9. public List<string> 设备类型列表 { get; set; }
  10. public Func<M解码前报文, M解码后报文> 解码器 { get; set; }
  11. /// <summary>
  12. /// 参数依次为: 发送方设备类型, 接收方设备类型, 功能码
  13. /// </summary>
  14. public Func<string, string, string, M功能> 功能码查询 { get; set; }
  15. public List<string> 默认内容过滤 { get; set; }
  16. public List<string> 默认业务过滤 { get; set; }
  17. public M项目()
  18. {
  19. this.默认内容过滤 = new List<string>();
  20. this.默认业务过滤 = new List<string>();
  21. }
  22. public override string ToString()
  23. {
  24. return 名称;
  25. }
  26. }
  1. public class M设备映射
  2. {
  3. [DBKey]
  4. public Int64 Id { get; set; }
  5. public bool 启用 { get; set; }
  6. public bool TCP { get; set; }
  7. public IPAddress IP1 { get; set; }
  8. /// <summary>
  9. /// 0表示任意端口
  10. /// </summary>
  11. public int 端口1 { get; set; }
  12. public string 设备类型1 { get; set; }
  13. public IPAddress IP2 { get; set; }
  14. /// <summary>
  15. /// 0表示任意端口
  16. /// </summary>
  17. public int 端口2 { get; set; }
  18. public string 设备类型2 { get; set; }
  19. public string 协议版本号 { get; set; }
  20. }
  1. public class M解码后报文
  2. {
  3. public DateTime 时间 { get; set; }
  4. public string 业务 { get; set; }
  5. public string 发送方 { get; set; }
  6. public string 发送方设备类型 { get; set; }
  7. public string 接收方 { get; set; }
  8. public string 接收方设备类型 { get; set; }
  9. public string 概述 { get; set; }
  10. public List<M信息> 详述 { get; set; }
  11. /// <summary>
  12. /// 传输层
  13. /// </summary>
  14. public byte[] 码流 { get; set; }
  15. public bool TCP { get; set; }
  16. public string 功能码 { get; set; }
  17. }
  1. public class M解码前报文
  2. {
  3. public bool TCP { get; set; }
  4. public string 发送方设备类型 { get; set; }
  5. public IPAddress 发送方IP { get; set; }
  6. public int 发送方端口号 { get; set; }
  7. public string 接收方设备类型 { get; set; }
  8. public IPAddress 接收方IP { get; set; }
  9. public int 接收方端口号 { get; set; }
  10. /// <summary>
  11. /// 传输层
  12. /// </summary>
  13. public byte[] 码流 { get; set; }
  14. public DateTime 时间 { get; set; }
  15. }
  1. public class M信息
  2. {
  3. public string { get; set; }
  4. public string { get; set; }
  5. public string 描述 { get; set; }
  6. public M信息 父节点 { get; set; }
  7. public List<M信息> 子节点 { get; set; }
  8. public M信息()
  9. {
  10. 子节点 = new List<M信息>();
  11. }
  12. public override string ToString()
  13. {
  14. var __详述内容 = new StringBuilder();
  15. __详述内容.AppendFormat("{0} : {1}{2}", 键, 值, Environment.NewLine);
  16. 递归详述(子节点, __详述内容, "--------");
  17. return __详述内容.ToString();
  18. }
  19. public static void 递归详述(List<M信息> 子节点, StringBuilder __详述内容, string __缩进)
  20. {
  21. 子节点.ForEach(q =>
  22. {
  23. __详述内容.AppendFormat("{0}{1} : {2}{3}", __缩进, q.键, q.值, Environment.NewLine);
  24. if (q.子节点 != null && q.子节点.Count > 0)
  25. {
  26. 递归详述(q.子节点, __详述内容, __缩进 + __缩进);
  27. }
  28. });
  29. }
  30. }