学习socket编程时,将服务器程序运行在开发板上,将客户端应用程序运行在 虚拟机Ubuntu16.04 系统,服务器可以正常开启,
![]()
但客户端连接时, 报错“connect error: No route to host”
![]()
1、网上大多是以下情况:
“ 两台机器进行socket通信时,可能在连接时出现错误:
connect error: No route to host(errno:113)
出错原因:server端的防火墙设置了过滤规则 ”
解决办法:使用iptables关闭server端的防火墙
//1.暂时关闭
$sudo service iptables stop
//2.打开
$sudo service iptables start
//3.永久打开和关闭
$sudo chkconfig iptables on
$sudo chkconfig iptables off
但实测不能解决我的问题,遂继续排查。
2、开发板的ip地址已虚拟机中的IP网段不在同一个网段
解决方法:用路由器的lan口将电脑与开发板网口连在一起,ping通后,再将IP地址改正确。
(有线连接直接使用桥接模式并修改IP在同一网段)。


问题解决!
文章描述了在进行socket编程时遇到的客户端连接服务器报错connecterror:Noroutetohost的问题。首先排除了服务器防火墙设置的干扰,尝试关闭iptables未解决问题。然后发现开发板的IP地址与虚拟机不在同一网络段,通过调整网络连接(如使用路由器桥接或修改IP至同一网段)并确保能ping通后,成功解决了问题。
3952

被折叠的 条评论
为什么被折叠?



