arm开发板使用socket与虚拟机连接不上

   在开发板上使用Qt进行Socket编程时,以主机的虚拟机为服务器,开发板作为客户端进行通信。服务器端和客户端全部写完后,在虚拟机上运行时可以连接上,但是使用交叉编译以后,移植到开发板上后,发现连接不上了。而且双方ping是通的。然后使用主机作为客户端新写一个socket去连接虚拟机的服务器,也可以连上。

   也就是说,虚拟机作为服务器,虚拟机作为客户端可以连;虚拟机作为服务器,主机作为客户端也可以连;就是开发版不能使用socket连接虚拟机或者主机,并且都可以相互ping通。

   其实问题的原因也很简单,ping命令使用的是ICMP协议,而socket使用的是TCP协议,验证两台机器之间能否使用TCP协议通信也很简单,telnet就是使用的TCP协议,在开发板上使用telnet命令去连接虚拟机,发现果然连接不上,因此需要将虚拟机上的telnet服务开启,我使用的是redhat虚拟机,需要先安装telnet服务,安装命令如下:

    yum install telnet-server -y

   这条命令需要运行在root模式下。

然后修改配置文件 /etc/xinetd.d/telnet , 将disable=yes改为 disable=no, 如下所示:

service telnet
{
    flags           = REUSE
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/sbin/in.telnetd
    log_on_failure  += USERID
    disable         = no
}

然后重启服务,命令是:

    /etc/init.d/xinetd restart

这里写图片描述

出现上面图说明重启成功,然后在开发板上使用命令:

    telnet 虚拟机IP 23

发现并不能登录,出现以下错误:

这里写图片描述

解决方法很简单,在虚拟加上执行命令:

    iptables -F

然后再使用telnet连接,发现可以连接上了。然后再使用自己写的socket程序测试socket连接,果然可以连上了。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值