Android网络测试--Ping命令
在开发Ping过程中,由一个小白到懵懂开发,开发出功能后总结了一下Android开发Ping时的应该要注意的。
先不说别的上代码:(要是有兴趣就往下看看Ping的参数设置,我也只懂了几个参数设置)
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new NetPing().execute();}/*** ping 语句传值拼接*/public void Ping() {StringBuilder buffer = new StringBuilder();String result = ""; // 结果集Process ping;try {/*常用格式ping 网址 -n 次数 -l 大小 -w 超时时间(毫秒) -t 不停运行ping www.baidu.com -n 3 -l 32 -w 60 但是实测这样并不行,于是找了其他的方法ping -c 3 -s 32 www.baibu.com*/// ping = Runtime.getRuntime().exec("ping www.baidu.com -n 3 -l 32 ");ping = Runtime.getRuntime().exec("ping -c " + count + " -s " + sByte + " " + url);int status = ping.waitFor(); // 状态InputStream input = ping.getInputStream();BufferedReader in = new BufferedReader(new InputStreamReader(input));String line = ""; // 长度while ((line = in.readLine()) != null) {buffer.append(line).append("\n");}// 输出结果System.out.println("============" + buffer.toString());if (status == 0) {result = buffer.toString();} else {result = "test error";}} catch (IOException | InterruptedException e) {e.printStackTrace();}}@SuppressLint({"WrongThread", "StaticFieldLeak"})private class NetPing extends AsyncTask<String, String, String> {@Overrideprotected String doInBackground(String... params) {Ping();return null;}}
}
我再开发中用到的都在里面了。
下面是ping语言的参数设置:(cmd 输入ping 就会有ping的参数使用介绍)
C:\Users\xu>ping用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS][-r count] [-s count] [[-j host-list] | [-k host-list]][-w timeout] [-R] [-S srcaddr] [-c compartment] [-p][-4] [-6] target_name选项:-t Ping 指定的主机,直到停止。若要查看统计信息并继续操作,请键入 Ctrl+Break;若要停止,请键入 Ctrl+C。-a 将地址解析为主机名。-n count 要发送的回显请求数。-l size 发送缓冲区大小。-f 在数据包中设置“不分段”标记(仅适用于 IPv4)。-i TTL 生存时间。-v TOS 服务类型(仅适用于 IPv4。该设置已被弃用,对 IP 标头中的服务类型字段没有任何影响)。-r count 记录计数跃点的路由(仅适用于 IPv4)。-s count 计数跃点的时间戳(仅适用于 IPv4)。-j host-list 与主机列表一起使用的松散源路由(仅适用于 IPv4)。-k host-list 与主机列表一起使用的严格源路由(仅适用于 IPv4)。-w timeout 等待每次回复的超时时间(毫秒)。-R 同样使用路由标头测试反向路由(仅适用于 IPv6)。根据 RFC 5095,已弃用此路由标头。如果使用此标头,某些系统可能丢弃回显请求。-S srcaddr 要使用的源地址。-c compartment 路由隔离舱标识符。-p Ping Hyper-V 网络虚拟化提供程序地址。-4 强制使用 IPv4。-6 强制使用 IPv6。
这里Android 开发常用的应该就是 -n 次数 -l 大小 -w 超时时间 ;其他的我在测试时也没测出什么所以然来,所以有兴趣的同志可以一起讨论一下:下面是我做的小测试
C:\Users\xu>ping www.baidu.com -n 3 -l 64正在 Ping www.a.shifen.com [61.135.185.32] 具有 64 字节的数据:
来自 61.135.185.32 的回复: 字节=64 时间=15ms TTL=54
来自 61.135.185.32 的回复: 字节=64 时间=19ms TTL=54
来自 61.135.185.32 的回复: 字节=64 时间=18ms TTL=5461.135.185.32 的 Ping 统计信息:数据包: 已发送 = 3,已接收 = 3,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):最短 = 15ms,最长 = 19ms,平均 = 17ms
C:\Users\xu>ping www.baidu.com -n 3 -l 64 -r 5正在 Ping www.a.shifen.com [61.135.185.32] 具有 64 字节的数据:
请求超时。
请求超时。
请求超时。61.135.185.32 的 Ping 统计信息:数据包: 已发送 = 3,已接收 = 0,丢失 = 3 (100% 丢失)
C:\Users\xu>ping www.baidu.com -n 3 -l 64 -i 2正在 Ping www.baidu.com [61.135.185.32] 具有 64 字节的数据:
来自 192.168.99.1 的回复: TTL 传输中过期。
来自 192.168.99.1 的回复: TTL 传输中过期。
来自 192.168.99.1 的回复: TTL 传输中过期。61.135.185.32 的 Ping 统计信息:数据包: 已发送 = 3,已接收 = 3,丢失 = 0 (0% 丢失)
参数详解:
-t:持续ping后接的主机地址,直到ctrl+c来结束命令
-a:将地址解析为主机名
-n:后接发送的echo询问包的数目
-l:后接length,发送包含由length指定的数据量的echo数据包
-i:后接ttl值,将生存时间设置为ttl指定的值
-v:将服务类型字段设置为“tos”指定的值
-r:在“记录路由”字段中记录传出和返回数据包的路由
-s:指定“count”指定的跃点数的时间戳
-j:经过由computer-list指定的计算机列表的路由报文
-w:以毫秒为单位指定超时间隔
-4/6:强制使用ipv4/ipv6协议,后接ipv4/6地址
那么这个命令可以用来做什么呢?主要是检测网络连通性
在用ping命令之前最好用ipconfig /all命令来看一下本地网络设置
1. ping 127.0.0.1;127.0.0.1是一个回送地址,ping回送地址是为了检测本地的TCP/IP协议有没有设置好。
2. ping +本机ip;用于检测本机的IP地址是否设置有误
3. ping+本网网关;为了检测硬件设备是否有问题
4. ping+远程IP地址;用于检测本机或者本网与外网的连接是否正常
参考文献:https://blog.csdn.net/bbc955625132551/article/details/69665160
参考文献:Android:Ping命令测试网络
下一篇:Android网络测试--Traceroute
Android网络测试--Ping命令相关推荐
- Android 执行 ping ip 命令是否通的代码
网上有的说 是android 但命令是windows 的,ping的命令 windows 和linux 以及android 的参数含义会稍有不同,而恰巧会影响这个判断: 先看网上的第一种写法: 有几个 ...
- android中的ping命令使用
前言 在做Android开发时,有时我们需要知道设备的网络好不好,光看手机上的信号格数是不准确的,比如在广州南站,人那么多,如果带宽不够的话,虽然你看着信号是满格的,但是网速也会很慢,有些地方,人少, ...
- android手机调用linux ping命令
开发环境 Eclipse 8.5 在手机的网络环境下,我们需要知道和哪些网络可以连通并进行通信,需要调用操作系统的ping命令 ,在windows平台下ping命令最简单的形式为 ping 127.0 ...
- 脑残式网络编程入门(五):每天都在用的Ping命令,它到底是什么?
本文引用了公众号纯洁的微笑作者奎哥的技术文章,感谢原作者的分享. 1.前言 老于网络编程熟手来说,在测试和部署网络通信应用(比如IM聊天.实时音视频等)时,如果发现网络连接超时,第一时间想到的就是使用 ...
- 图解win7下ping命令使用
ping (网络诊断工具) Ping是Windows.Unix和Linux系统下的一个命令.ping也属于一个通信协议,是TCP/IP协议的一部分.利用"ping"命令可以检查网络 ...
- (转)Android 常用 adb 命令总结
转载地址:https://www.cnblogs.com/bravesnail/articles/5850335.html 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常 ...
- telnet/ftp/netstat/ping命令詳細介紹
很多朋友问到telnet/ftp/netstat/ping 命令的使用方法 今天我就抽点时间做个telnet/ftp/netstat/ping 命令一詳細介紹! 请入门者静下心来.......... ...
- ping 命令_命令PING背后发生了什么,记得Windows XP拒绝利用PING命令通信吗
首先了解PING命令,PING是Windows.Unix和Linux系统下的一个命令,当小伙伴们检查网络情况的时候,先使用的命令肯定是PING命令.PING也属于一个通信协议,是TCP/IP协议的一部 ...
- 网络状态测试程序(基于ping命令)
网络状态测试程序(基于ping命令) 需求分析 在linux下实现一个获取两台设备网络连通性的程序 执行速度尽可能的快 概要设计 网络连通性测试 网络丢包率测试 详细设计 网络连通性 为了减少不必要的 ...
最新文章
- 在Developerkit开发板上运行blink例程
- Chrome 技术篇-json查看,json格式化,JSONView插件
- CAN接口芯片SN65HVD230DR波形
- Linux 配置文件
- linux基于usb启动配置
- 计算机操作系统第三章知识点,深入理解计算机操作系统第三章家庭作业
- A - Beautiful Matrix
- 原生html冻结表头,CSS如何实现表头冻结效果
- Trie树的C++实现
- int indexs=(int)(_v+0.5);
- MOSS 2010:Visual Studio 2010开发体验(23)——编写自定义的BCS连接器
- LeetCode-Sum Root to Leaf Numbers
- sublime 快捷键F5执行python程序
- 复盘2020年全球医疗行业:新冠疫苗争分夺秒、跨国药企押注中国、药企整合并购不断 | 医药观察...
- centos添加桌面快捷方式
- Go语言处理Windows系统的图标ICO文件(下)
- 论如何科学的看小本子
- Android 登录3D翻转动画效果
- 奖金600万美元的XPRIZE新冠病毒快速检测竞赛决出大奖获得者,以研制快速、大规模、低成本且简单易用的解决方案
- 2023年最新的区块链交易所开发的架构方案
热门文章
- 【免杀前置课——Windows编程】五、窗口控件——什么是控件、Windolws 窗口两大类、Windows标准控件/通用控件、控件响应的接收、创建窗口制作不同控件
- Caffe--应用实践
- 零基础数据挖掘入门系列(三) - 数据清洗和转换技巧
- 禁止计算机使用u盘启动,如何禁止u盘启动电脑系统?bios禁止u盘启动系统教程
- python计算机语言基础_PYTHON之计算机语言基础知识 —— 编程语言的分类
- 电阻、电感、电容元件的交流电路
- Linux上配置SVN使用http访问
- nachos安装 Ubuntu18.04为例
- 计算机视觉——相机定位
- 不跟你谈“五险一金”的老板,都是在耍流氓