突发奇想,想看看安卓上能不能实现ping命令,一百度,已经有现成的程序了,但是没有代码。没代码就自己写咯,想想还是挺激动的呢。
废话不多说,上图:
界面文件代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center|top" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.Jackhcunyang.pingtest.MainActivity" > <EditText android:id="@+id/editText" android:inputType="text" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" > <requestFocus /> </EditText> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/buttonname" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical"/> </LinearLayout>
我把ping命令的主要部分放在按钮监听器类里了,所以主Activity里并没有什么:下面是主Activity代码:
package com.Jackhcunyang.pingtest; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends Activity { TextView t; EditText e; public static String ACTIVITY_TAG = "PingTest"; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏标题 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设置全屏 setContentView(R.layout.activity_main); TextView t = (TextView) this.findViewById(R.id.textView); this.t = t; Button b = (Button) this.findViewById(R.id.button); EditText e = (EditText) this.findViewById(R.id.editText); this.e = e; ButtonListener bl = new ButtonListener(this); b.setOnClickListener(bl); } public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
而后就是监听器代码了:
package com.Jackhcunyang.pingtest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; /** * @author 春阳 * */ public class ButtonListener implements android.view.View.OnClickListener { private MainActivity m; private static Runtime run = Runtime.getRuntime(); private static Process proc = null; private static String ss=null; Handler mHandler = new Handler(); public ButtonListener(MainActivity m) { this.m = m; } public void onClick(View v) { mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); m.t.setText(ss); m.t.invalidate(); } }; new Thread(new Runnable() { public void run() { BufferedReader br = null; String s = m.e.getText().toString();// 得到输入框的内容 try { proc = run.exec("ping -c 4 -w 200 " + s); Log.i(MainActivity.ACTIVITY_TAG,"ping -c 4 -w 200 " + s);// 写入日志 int status = proc.waitFor(); System.out.println(status); proc.getInputStream(); if (status == 0) { s = "连接成功"; Log.i(MainActivity.ACTIVITY_TAG,s); } else { s = "连接失败"; Log.i(MainActivity.ACTIVITY_TAG,s); } br = new BufferedReader(new InputStreamReader( proc.getInputStream())); String line = null; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null) { sb.append(line + "\n"); } System.out.println(sb.toString()); ss=s + "\r\n" + sb.toString(); Log.i(MainActivity.ACTIVITY_TAG,ss);//日志 mHandler.sendMessage(mHandler.obtainMessage());//传递信息让handler执行 } catch (IOException | InterruptedException e) { System.out.println("IOException|InterruptedException"); } } }).start(); } }
相关推荐
ping的参数!ping的参数!ping的参数!ping的参数!ping的参数!ping的参数!ping的参数!
PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议;回声请求消息给目的地并报告是否收到所 希望的ICMP echo...
Windows防火墙开启ping,禁ping的配置方法 当我通过本机Ping另一台在同一局域网内(即在同一网段)的... 右击选择启用规则,并在其属性里设置为‘允许连接'--> 确定 --> 大功告成。 要禁止ping,去掉勾选即可.
还有连接失败的错误率。 可选中列表,使用CTRL + C 键复制ping的结果。 界面如下: 工具下载:http://files.cnblogs.com/zjfree/NetPing.rar 源码下载:...
ICMP Ping实现-Ping客户端创建原始套接字ICMP Ping实现-Ping客户端创建原始套接字ICMP Ping实现-Ping客户端创建原始套接字ICMP Ping实现-Ping客户端创建原始套接字ICMP Ping实现-Ping客户端创建原始套接字ICMP Ping...
js模拟ping命令!js模拟ping命令!j
PING的一些参数: ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list -t Ping 指定的计算机直到...
[易语言源码]-PING连接.
指定网口ping,指定速率ping,指定大小ping,指定次数ping
Ping服务使用方法 你可以采取手动通知和自动通知两种方式使用ping服务: 手动ping:访问http://ping.baidu.com/ping.html页面,在输入框中输入博客地址或者feed地址,点击“提交博客”按钮即可。 自动ping:如果您...
这是一个多线程的ping命令,可以同时ping一段网络地址,属于异步ping!仅希望大家作为参考学习!
指定网口ping,指定速率ping,指定大小ping,指定次数ping222
-h header-line Pass the given header line as-is in each ping request. For example, add a host header like this: -h \"Host: www.site1.com\" Be sure to surround the header-line with quotes. You can ...
已封装成NonVisualObject,即开即用,PB9测试通过。 if nettool.ping(em_1.Text) then MessageBox("Ping", "Ping failed!", Exclamation!) else MessageBox("Ping", "Ping succeeded!") end if
LinuxC编写的ping命令LinuxC编写的ping命令LinuxC编写的ping命令LinuxC编写的ping命令LinuxC编写的ping命令LinuxC编写的ping命令LinuxC编写的ping命令LinuxC编写的ping命令LinuxC编写的ping命令LinuxC编写的ping命令...
简体中文:使用PingDude X,您可以轻松,快速地为世界各地的路由器和各种在线服务器测量Ping! 对于游戏玩家或故障定位的完美工具! 支持所有路由器制造商。 德语:使用PingDude X,您可以轻松,快速地测量路由器和...
1,支持自动获取剪贴板数据省去了ctrl c、ctrl v(切到软件窗口直接回车等同按ping按钮) 2,支持置顶窗口 3,支持批量导入ip自动去除重复ip 4,支持单线程多线程切换(少于10个ip自动单线程) 5,支持ping D段ip 6...
用java实现ping的几种方式:纯Java实现ICMP的ping命令,JAVA调用外部EXE实现PING功能,ICMP Ping in Java(JDK 1.5 and above),最简单的办法,直接调用CMD
实验内容:Ping命令实现的扩充,在给定的Ping程序的基础上做如下功能扩充: ? -h 显示帮助信息 ? -b 允许ping一个广播地址,只用于IPv4 ? -t 设置ttl值,只用于IPv4 ? -q 安静模式。不显示每个收到的包的分析结果,...
实现批量PING功能,不再调用cmd窗体,另启用窗体进行调用