不想编写一个socket来和服务器发送心跳包保持联系。
只想测试网络是否在线。即IP等设置不对或者网线被拔出导致的不能上网都可以检测出来!
就像Ubuntu里的网络小图标那样。
希望可以调用有关库函数或者外部命令来实现。
本人网上搜了N多帖子无果。
THX!
11 个解决方案
#1
ping其实就已经是最好的工具了,否则就是原始套接字写个C程序,发ICMP请求,并接受应答...
#2
总感觉这样的方式不够优雅,或说,在win下就有系统调用来判断网络的通断,为啥linux下木有呢
#3
有木有淫啊 发表一下看法嘛
#4
这个网络通断是对方的机器, 不Ping肯定不行啊, 对方又没明确提供某个端口的服务, 只有ICMP是一般开发的.
#5
直接用ethtool查看就行了。。。
#6
检查网线是否插入可以查看
/sys/class/net/eth0/carrier 文件的内容。 1 表示网线有插入, 0 表示没接网线。
IP等设置不对 这个没有什么好的办法检查。
/sys/class/net/eth0/carrier 文件的内容。 1 表示网线有插入, 0 表示没接网线。
IP等设置不对 这个没有什么好的办法检查。
#7
THX.
不知道Ubuntu等发行版的网络连接小工具(就是面板右上角的那个图标)里面具体怎么实现的。人家的那个做的很不错哈~~
不知道Ubuntu等发行版的网络连接小工具(就是面板右上角的那个图标)里面具体怎么实现的。人家的那个做的很不错哈~~
#8
估计也是ping吧。
#9
怎么感觉ping的方式很不优雅
#10
一个ping 命令就可以知道了。简单明了。
#11
学习了!!
#1
ping其实就已经是最好的工具了,否则就是原始套接字写个C程序,发ICMP请求,并接受应答...
#2
总感觉这样的方式不够优雅,或说,在win下就有系统调用来判断网络的通断,为啥linux下木有呢
#3
有木有淫啊 发表一下看法嘛
#4
这个网络通断是对方的机器, 不Ping肯定不行啊, 对方又没明确提供某个端口的服务, 只有ICMP是一般开发的.
#5
直接用ethtool查看就行了。。。
#6
检查网线是否插入可以查看
/sys/class/net/eth0/carrier 文件的内容。 1 表示网线有插入, 0 表示没接网线。
IP等设置不对 这个没有什么好的办法检查。
/sys/class/net/eth0/carrier 文件的内容。 1 表示网线有插入, 0 表示没接网线。
IP等设置不对 这个没有什么好的办法检查。
#7
THX.
不知道Ubuntu等发行版的网络连接小工具(就是面板右上角的那个图标)里面具体怎么实现的。人家的那个做的很不错哈~~
不知道Ubuntu等发行版的网络连接小工具(就是面板右上角的那个图标)里面具体怎么实现的。人家的那个做的很不错哈~~
#8
估计也是ping吧。
#9
怎么感觉ping的方式很不优雅
#10
一个ping 命令就可以知道了。简单明了。
#11
学习了!!