Android——套接字Socket
一.网络地址InetAddress
检查设备自身与某个网络地址的连通性用到了InetAddress工具,这是对网络地址的一个封装。下面介绍该工具的主要方法说明。
-
getByName:根据主机IP或主机名称获取InetAddress对象。
-
getHostAddress:获取主机的IP地址。
-
getHostName:获取主机的名称。
-
isReachable:判断该地址是否可到达,即是否连通。
下面是检查网络地址能否连通的代码片段:
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() {
// 在收到结果消息时触发
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;
}
public void run() {
// 获得一个默认的消息对象
Message message = Message.obtain();
try {
// 根据主机名称获得主机名称对象
InetAddress host = InetAddress.getByName(mHostName);
// 检查该主机在规定时间内能否连上
boolean isReachable = host.isReachable(5000);
String desc = (isReachable) ? "可以连接" : "无法连接"