C#实现自定义协议问题

Waitforsniping 2013-02-18 09:34:44
根据公司的要求,要写两个实现自定义协议的类:其中一个是协议的框架,另一个类继承该类,是一个具体的协议。
我拿到了类似项目的源码,不过看了之后不大懂,所有想问一下:
一:实现自定义协议具体是个什么概念,能不能给个通俗点的说法;
二:这个类要怎么写,有没有必须的步骤(这里可以简单点说)。写出来之后要怎么用(这里请详细点写,搞不明白这个问题我心里不舒服)。
...全文
394 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Waitforsniping 2013-02-20
  • 打赏
  • 举报
回复
我还是自己努力吧。
showjim 2013-02-18
  • 打赏
  • 举报
回复
序列化是解决自定义协议的通用方法
assky124 2013-02-18
  • 打赏
  • 举报
回复
拨开现象看本质,定义协议无非是为了交换数据。 你写个WebService,就可以看成是一个协议,用户按指定格式发送请求数据,你的服务返回相应的结果,就可以了。 如果用Socket通讯的话,用XML交互就可以,大部分程序都是支持XML的。将XML转化成二进制流(为了安全起见,稍微加密下),客户端解析下,就OK了
Waitforsniping 2013-02-18
  • 打赏
  • 举报
回复
引用 6 楼 TigerAUK 的回复:
你说的实现不知是不是让用户自己定义协议格式,如果是的话就要麻烦些了,比如要保存用户定义的报文开头,长度,结尾,具体的数据内容还要定义数据的标识,数据的长度,数据的值等,可以把这些内容都保存起来,用的时候取出来再用。
协议的内容让我们定义,用户只管用。不过你说的让我有了点思路,代码一大堆不知道怎么看都。
Waitforsniping 2013-02-18
  • 打赏
  • 举报
回复
引用 5 楼 bdmh 的回复:
这里讲半天根本没有意义,第一你要去看需求,协议制定又不是死的,跟你们需求人员确定,第二估计你对面向对象还不熟悉吧,先把基础的东西,心里明白后,再去研究你的项目,不要上来就问大而空的问题
对啊,我就是基础不行,学这个没多久。可是还是想先搞明白这个怎么用,要不然不知道往哪学啊。
TigerAUK 2013-02-18
  • 打赏
  • 举报
回复
你说的实现不知是不是让用户自己定义协议格式,如果是的话就要麻烦些了,比如要保存用户定义的报文开头,长度,结尾,具体的数据内容还要定义数据的标识,数据的长度,数据的值等,可以把这些内容都保存起来,用的时候取出来再用。
bdmh 2013-02-18
  • 打赏
  • 举报
回复
这里讲半天根本没有意义,第一你要去看需求,协议制定又不是死的,跟你们需求人员确定,第二估计你对面向对象还不熟悉吧,先把基础的东西,心里明白后,再去研究你的项目,不要上来就问大而空的问题
TigerAUK 2013-02-18
  • 打赏
  • 举报
回复
最后,如果写都写出来了,用就更简单了,先引用你的类,再调用你的类的功能就行了,和用vs里的类和方法一样的。
TigerAUK 2013-02-18
  • 打赏
  • 举报
回复
协议的类要包括很多方法和字段,发送报文要先定义报文格式,再发送出去;接收报文要先分析报文格式,再进行数据处理。这些得根据需求来具体定义了。
Waitforsniping 2013-02-18
  • 打赏
  • 举报
回复
引用 1 楼 TigerAUK 的回复:
通讯协议就是双方通讯时的语言,也就是收和发都要有规定格式,自定义协议的话最好做了,可以参考下modbus协议,不想劳神也可以找个标准,按照标准来做,一般都是有行业规定的。 比如我是做热表的,国产表有一种协议,进口表也有一种协议,举个例子: 如果想读一块表的信息,要发送 10 7B 01 7C 16 (16进制) 10 7B 是开头,01 是地址,7c是校验和,16是……
你说的是自定义协议,这个我知道。我问的是实现问题。
TigerAUK 2013-02-18
  • 打赏
  • 举报
回复
通讯协议就是双方通讯时的语言,也就是收和发都要有规定格式,自定义协议的话最好做了,可以参考下modbus协议,不想劳神也可以找个标准,按照标准来做,一般都是有行业规定的。 比如我是做热表的,国产表有一种协议,进口表也有一种协议,举个例子: 如果想读一块表的信息,要发送 10 7B 01 7C 16 (16进制) 10 7B 是开头,01 是地址,7c是校验和,16是结束符 表收到这条报文后会回复一个固定长度的报文,报文包括所有表的信息。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧