打算用C#开发一个IP包解码器,需求如下:
- IP包类型可以是IPV4+UDP、IPV6+UDP、IPV4+IPV6、IPV4+IPV4、IPV6+IPV6等
- 输入一个bitstring,选择包类型,然后根据包类型的格式解码包,并在文本框中显示每个字段解析的结果,用户可以修改每个字段的值生成新的比特流。
- 界面大致如下图所示。
我的问题如下:
- 我打算用VS开发,会用到什么控件?我觉得textbox, treeview (select package type), panel, label, button会用到。
- 如何模块化和复用,比如IPv6 header(40 bytes)的显示要提取成一个模块或控件,这样可以直接复用在包含IPv6的包类型中。只要在IPV6 header中输入40个字节,就可以根据header的格式解析出各个字段的值并显示出来,那么是否可以为IPV6的显示设计一个单独的控件呢?但是我不太清楚这个控件应该如何设计和实现。
十几年前就用过C#,有一定的了解。希望能理清设计思路,尽快实现这个功能,少走弯路。请帮助并提供建议。提前致谢!
自己设计了大概的展示界面和用到的控件,就是不知道怎么把用来展示IPV4/IPV6/UDP的控件模块化