《表1 TrainDataBase数据表》

《表1 TrainDataBase数据表》   提示:宽带有限、当前游客访问压缩模式
本系列图表出处文件名:随高清版一同展现
《基于Socket的铁路货车运行图像采集传输系统》


  1. 获取 高清版本忘记账户?点击这里登录
  1. 下载图表忘记账户?点击这里登录

在TCP协议里是通过心跳包机制来确认客户端和服务器的连接是否存在,心跳包就是客户端按照预定时间向服务器发送固定内容来通知服务器自己的存在,编程中通过设置SO_KEEPALIVE选项来实现[7]。但是这样的机制还不足以应对电脑故障、网线异常和防火墙拦截造成的断线情况,所以在整个系统中做了通信异常的检测和重发的防护机制,以此来确保数据的完整性。本系统中重写了新的Socket类,继承自CSocket类,在通信过程中,如果发生断线或者发送/接收端程序异常时,Receive和Send会发生阻塞或者返回失败。当Receive和Send函数操作发生阻塞超时或者返回失败时,定时器会触发标志位置为FALSE。这样客户端或者服务器都可以通过在发送、接收循环中检测CTimeOutSocket类的Isabnormal标志位来判断是否发送、接收异常。当检测到通信异常时,客户机会在数据库中将本次要发送的数据的状态记录下来,并且不断尝试重新连接,当连接成功后进行数据库遍历搜索到未发送的记录进行重传。数据库中定义了一个记录类型TrainDataBase,表1说明了其内容格式。