4 链路层实现
2 N7 G( c1 w3 u* o O5 ^' l) A7 l链路层采用C++语言实现,以便于代码在各模块程序中复用。应用层数据发送和接收流程如图2,图3所示。
$ o* p) _& r) @7 u8 K9 U, G
& |# q6 s/ c( O& q8 T( P) G
5 结语
8 r; |4 s) W, y" @" p* f链路层的作用是可靠地把应用层数据发送到对端设备,但如果仅仅是这样,应用程序使用起来并不是很方便,如果使用面向对象编程的方法,把链路层代码封装在一个类中,向应用程序提供一些较为简单的功能接口,如发送数据,接收数据,检测对端是否可达等,就可以很好地解决易用性问题。另外当数据发送失败时,应当以返回值或事件方式通知应用程序,当有应用层数据需要处理时,最好以回调函数或事件方式激活应用层处理程序,以避免应用程序低效的循环检测。通过在协议设计和协议实现两个方面同时进行优化,该协议在实际应用过程中表现出极好的可靠性和一定的通用性,可供参考借鉴。
2 ?7 l+ T4 C, x8 ?6 W