1.网络地址InetAddress
在发送请求前检查一下能否与对方地址建立连接,检查设备自身与某个网络地址的连通性用到了InetAddress工具,这个工具是对网络地址的一个封装。下面介绍几个该工具的主要方法说明。
- getByName:根据主机IP或者主机名称获取InetAddress对象。
- getHostAddress:获取主机的IP地址。
- getHostName:获取主机的名称。
- isReachable:判断该地址是否可到达。
下面是代码:
public class NetAddressActivity extends AppCompatActivity implements OnClickListener {
private EditText et_host_name;
private TextView tv_host_name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_net_address);
et_host_name = (EditText) findViewById(R.id.et_host_name);
tv_host_name = (TextView) findViewById(R.id.tv_host_name);
findViewById(R.id.btn_host_name).setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.btn_host_name) {
new CheckThread(et_host_name.getText().toString()).start();
}
}
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
tv_host_name.setText("主机检查结果如下:\n"+msg.obj);
}
};
private class CheckThread extends Thread {
private String mHostName;
public CheckThread(String host_name) {
mHostName = host_name;
}
@Override
public void run() {
Message message = Message.obtain();
try {
InetAddress host = InetAddress.getByName(mHostName);
boolean isReachable = host.isReachable(5000);
String desc = (isReachable)?"可以连接":"无法连接";
if