很典型的策略模式啊~
按照预置的协议策略来解析数据包,如果成功,则匹配成功;否则采用下一个协议策略~
如果都没有成功的,则说明不支持当前数据包,在人工分析后,增加相应的协议策略即可(策略可用通过配置文件生成)
目前情况下,我是按照这个思路来的,但是这地方会成为一个瓶颈,我目前的想法是在这种方案上改进
@ㄟ荖樹炪厊ㄖ:
都是慢慢完善啊,哪有完美的系统~
你看哪个产品不是beta,然后betaA,betaB。。。
等到某天你积累了相当规模的策略,就能应付大部分设备了~
谢谢,这篇文章我之前就已经看过了,对于我的问题,它基本上没有多大意义。由于接收到的数据根本不知道是什么类型的数据,所以用流的形式来读取并指定到某个类对象上,无法操作。
请问楼主发送过来的数据是不是一件固定化了,如果没固定化,为什么不多加一个标志位指示什么类型消息呢?另外能不能具体情况说一下呢?
硬件设备发送的数据包
你的硬件应该有接收和发送的协议的数据包的格式吧;你接收数据时,按你的协议去解析数据;就行了;最主要的是你理解协议就ok了;或和供应商联系让他们提供一个你使用的语言的一个demo;
恩,理想情况下是这样子的
@ㄟ荖樹炪厊ㄖ: 这个需要你努力呀;你需要什么,开发过程中遇到的问题都应该有直接的负责人吧;直接找厂家要demo;硬件不是你们生产的吧;是的话就更好了了;硬件开发是比较容易的问题是协议的理解;
@HuaFang: 有自己生产的硬件,也有其它产家的硬件,杯具的就是协议不统一,痛苦中~
每个包头必须设定标识位来区分协议类型,然后将数据包交给不同的协议解析器来解析
有些数据就是没头没尾的。。。
如果收到的数据没有一个统一的标识的话 那也没办法搞啊是不是一个设备建立了一个连接呢?