开发学院软件开发VC 串口转TCP/IP实用程序 阅读

串口转TCP/IP实用程序

 2010-08-22 20:47:22 来源:WEB开发网   
核心提示:关键字:SerialPort 转 TCP/IP、串口编成、远程串口调试我正是从VCKBASE 开始学习VC++ 的,没有他我进步不会如此迅速,串口转TCP/IP实用程序,一直想给VCKBASE贡献点什么,正好今天有空,程序中主要的类有:CSerialPort、CTcpSocket、CItem,可以把从串口收到的数据转发

关键字:SerialPort 转 TCP/IP、串口编成、远程串口调试

我正是从VCKBASE 开始学习VC++ 的,没有他我进步不会如此迅速,一直想给VCKBASE贡献点什么,正好今天有空,就把早些时候写的一个串口转TCP/IP的程序发上来,希望对初学者学习串口编程有点帮助。

程序的最大缺陷:

Windows把硬件驱动的接口都进行了抽象和标准化,串口也不例外,大部分的设备都可以通过文件操作API进行存储控制,如:CreateFile、ReadFile、WriteFile等,其实很简单。网上有个SerialPort的类写得还不错,我就直接拿来用了,只做了小小的修改以满足我的要求。原本的类一次只能收发一个Byte,根据需要我改成了512 Byte,需要重点提出的是,当收发多字节数据时,数据的正确性和完整性更需要自己保证,因为串口协议标准只是定义在物理层和数据链路层,打个比方说,如果一次发送512 Byte,收到不一定是正确的512 Byte,所以自己要进行相关校验保证正确性,也可能不是一次就会完整的收到512 Byte,而是分多次收完所有数据,这时就要我们定义相关结构保证数据收发完整性。这些细节都是跟串口驱动的实现有关,读者感兴趣的话,可以查看相关文档。在这个应用程序中完全没有对这个问题进行防护处理,鉴于一次收发数据量小(512 Byte),并且只是自己的试验品,所以写得并不严谨,把数据收发理想为一次性正确收发,希望各位都能注意了。

程序的整体结构:

程序功能实现如下:

客户端<————> (CTcpSocket)转接程序(CSerialPort) <————>串口设备

对于每个CTcpSocket和CSerialPort对用一个CItem的结构进行管理,可以在配置文件里配置多个连接转发对。

程序中主要的类有:CSerialPort、CTcpSocket、CItem。可以把从串口收到的数据转发向数据套接字和调试套接字,而且可以写入日志文档。

1 2  下一页

Tags:串口 TCP IP

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接