ImageVerifierCode 换一换
格式:DOC , 页数:3 ,大小:310.55KB ,
资源ID:6730220      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6730220.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(串口转TCP&IP实用程序.doc)为本站会员(hyngb9260)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

串口转TCP&IP实用程序.doc

1、串口转 TCP/IP 实用程序(转自:编程入门)关键字:SerialPort 转 TCP/IP、串口编成、远程串口调试我正是从 VCKBASE 开始学习 VC+ 的,没有他我进步不会如此迅速,一直想给VCKBASE 贡献点什么,正好今天有空,就把早些时候写的一个串口转 TCP/IP 的程序发上来,希望对初学者学习串口编程有点帮助。程序的最大缺陷:Windows 把硬件驱动的接口都进行了抽象和标准化,串口也不例外,大部分的设备都可以通过文件操作 API 进行存储控制,如: CreateFile、ReadFile、WriteFile 等,其实很简单。网上有个 SerialPort 的类写得还不错,

2、我就直接拿来用了,只做了小小的修改以满足我的要求。原本的类一次只能收发一个 Byte,根据需要我改成了 512 Byte,需要重点提出的是,当收发多字节数据时,数据的正确性和完整性更需要自己保证,因为串口协议标准只是定义在物理层和数据链路层,打个比方说,如果一次发送 512 Byte,收到不一定是正确的512 Byte,所以自己要进行相关校验保证正确性,也可能不是一次就会完整的收到 512 Byte,而是分多次收完所有数据,这时就要我们定义相关结构保证数据收发完整性。这些细节都是跟串口驱动的实现有关,读者感兴趣的话,可以查看相关文档。在这个应用程序中完全没有对这个问题进行防护处理,鉴于一次收发

3、数据量小(512 Byte) ,并且只是自己的试验品,所以写得并不严谨,把数据收发理想为一次性正确收发,希望各位都能注意了。程序的整体结构:程序功能实现如下:客户端 (CTcpSocket)转接程序(CSerialPort) 串口设备对于每个 CTcpSocket 和 CSerialPort 对用一个 CItem 的结构进行管理,可以在配置文件里配置多个连接转发对。程序中主要的类有:CSerialPort、CTcpSocket、CItem。可以把从串口收到的数据转发向数据套接字和调试套接字,而且可以写入日志文档。图一 程序显示条目日志文档结构:时间 数据传输方向 数据尺寸 16 Byte 16

4、 进制显示数据 字符显示图二 日志结构程序配置文件(config.ini)说明:item1 #连接名称TcpDataPort=9990 #数据端口TcpDebugPort=9991 #调试端口SerialPort=1 #串口号Baud=9600 #串口波特率LogFile=item1.txt #日志名称LogOn=On #日志开关Enabled=0 #连接开关重要数据结构说明:class CItempublic:CItem(void);CItem(void);public:CTcpSocket m_sockDateListen; /数据监听套接字CTcpSocket m_sockDateMai

5、n; / 数据套接字CTcpSocket m_sockDebugListen; / 调试监听套接字CTcpSocket m_sockDebugMain; /调试套接字CTcpSocket m_sockTemp; / 临时 socketBOOL m_dataSockInUse; / 相关标志BOOL m_debugSockInUse;CSerialPort m_serialPort;int m_iTotalSendDate; / 收发数据统计int m_iTotalRecvDate;int m_iDebugPort; /调试端口,用来连接额外调试程序,输出数据进行调试int m_iDataPor

6、t; /数据端口int m_iSerialPort; /串口号int m_iBaud; /串口波特率CString m_strDataLinkTo; /数据远端 IPCString m_strDebugLinkTo; / 调试远端 IPCString m_strItemName; / 转发连接名称CString m_mistake; / 错误信息CString m_strLogFileName; / 日志文件BOOL m_logFlag; /日志文件打开标志CSerialTcpDlg* m_pParent;void SetParentItem();串口消息响应在主对话框中:LRESULT OnCommunication(WPARAM ch, LPARAM port) /当串口收到数据会调用此程序结束语最初写完这个小程序是为了远程调试串口设备,新手编程习惯极为不好,代码里基本就没有注释,所以现在程序里重要结构和函数的注释都是我后期加的,由于时隔太久,注释不太明晰,读者还要自己多斟酌。风格很烂,此文仅仅是串口编成一个比较实用的例子,不能为生产所用。虽然名义上是用 C+写得,但完全是 C 的风格,而且代码很浅显,高手看看笑过就算了。如有任何问题可与我联系。代码在 VC+ 2005 调试通过。本文配套源码

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报