Qt-TCP-ModBus调试笔记

继续上篇的Qt自带例程串口modbus调试后进行的TCP-modbus调试,代码已经读的差不多,下篇会给出带码的简单注释

1.调试环境

ubuntu16.04+Qt5.6.1,调试例程为Qt自带的slave和master两个程序,分别作为tcp-modbus的服务器和客户机。

找到例程

 

2.遇到的问题

分别运行两个例程,没有权限打开本机IP端口(The socket is protected)


 这个问题困扰了一整 天,从这个提示看不出什么原因,通过阅读Qt源代码,追踪到报错代码处


定位到代码段继续查找


查找 AddressProtectedErrorString


在Qt的帮助文档中查找SocketAccessError最后确定问题所在:The socket operation failed because the application lacked the required privileges.

翻译过来就是:套接字操作失败,因为应用程序缺乏所需的权限。


4.解决办法

找到了问题所在,就有办法解决了,linux权限问题一般就是在程序执行的时候加一个sudo,所以找到Qt debug后生成的可执行文件分执行就可以了。如 sudo ./modbusslave


5.最终调试结果


和串口的运得效果是一样的,下篇分析下Qt modbus例程源码。

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值