Android 网络地址之实现检查主机名的功能

简介: Android 网络地址之实现检查主机名的功能

效果演示:

实现步骤

一、布局页面activity_inet_address.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="5dp"
    tools:context=".InetAddressActivity">
    <EditText
        android:id="@+id/edit_address"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@drawable/edit_style"
        android:text="www.163.com" />
    <Button
        android:id="@+id/btn_hostName_check"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="5dp"
        android:text="检查主机名"
        android:textColor="@color/black"
        android:textSize="20sp" />
    <TextView
        android:id="@+id/tv_desc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="@color/black"
        android:textSize="15sp" />
</LinearLayout>

二、InetAddressActivity类,实现根据用户输入的主机名,检查是否可以连接,并且显示主机名,和ip地址,代码中已经给出了详细的注释。

public class InetAddressActivity extends AppCompatActivity implements View.OnClickListener {
    private EditText edit_address;
    private TextView tv_desc;
    private Button btn_hostName_check;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_inet_address);
        edit_address = findViewById(R.id.edit_address);
        tv_desc = findViewById(R.id.tv_desc);
        btn_hostName_check = findViewById(R.id.btn_hostName_check);
        btn_hostName_check.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_hostName_check:
                String hostName = edit_address.getText().toString();
                //开启子线程 检查主机名
                new CheckThread(hostName).start();
                break;
            default:
                break;
        }
    }
    //创建一个检查结果的接收器Handler
    private Handler handler = new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage(@NonNull Message msg) {
            tv_desc.setText("主机检查结果如下:\n" + msg.obj);
            return true;
        }
    });
    private class CheckThread extends Thread {
        private String hostName;
        public CheckThread(@NonNull String name) {
            hostName = name;
        }
        @Override
        public void run() {
            //获得一个默认消息对象
            Message message = Message.obtain();
            try {
                //根据主机名获取主机名称对象
                InetAddress inetAddress = InetAddress.getByName(hostName);
                //检查该主机在规定时间内能否连上
                boolean isReachable = inetAddress.isReachable(5000);
                String desc = (isReachable) ? "可以连接" : "无法连接";
                if (isReachable) {
                    desc = String.format("%s\n主机名为:%s\n主机地址为:%s", desc,
                            inetAddress.getHostName(), inetAddress.getHostAddress());
                    message.what = 0; //消息类型
                    message.obj = desc;//消息描述
                }
            } catch (Exception e) {
                e.printStackTrace();
                message.what = -1; //消息类型
                message.obj = e.getMessage(); //消息描述
            }
            // 向接收处理器发送检查结果消息
            handler.sendMessage(message);
        }
    }
}


目录
相关文章
|
1月前
|
机器学习/深度学习 运维 安全
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
金融交易网络与蛋白质结构的共同特点是它们无法通过简单的欧几里得空间模型来准确描述,而是需要复杂的图结构来捕捉实体间的交互模式。传统深度学习方法在处理这类数据时效果不佳,图神经网络(GNNs)因此成为解决此类问题的关键技术。GNNs通过消息传递机制,能有效提取图结构中的深层特征,适用于欺诈检测和蛋白质功能预测等复杂网络建模任务。
68 2
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
|
1月前
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
42 5
|
28天前
|
存储 监控 数据挖掘
计算机网络的功能
计算机网络支持信息交换、资源共享、分布式处理、可靠性增强及集中管理。信息交换涵盖多种媒体形式,促进远程协作;资源共享降低用户成本,提高效率;分布式处理提升计算能力;冗余机制保障系统稳定;集中管理简化网络维护,确保安全运行。
32 2
|
1月前
|
运维 物联网 网络虚拟化
网络功能虚拟化(NFV):定义、原理及应用前景
网络功能虚拟化(NFV):定义、原理及应用前景
83 3
|
2月前
|
网络协议 Shell 网络安全
解决两个 Android 模拟器之间无法网络通信的问题
让同一个 PC 上运行的两个 Android 模拟器之间能相互通信,出(qiong)差(ren)的智慧。
34 3
|
2月前
|
安全 Android开发 iOS开发
Android vs iOS:探索移动操作系统的设计与功能差异###
【10月更文挑战第20天】 本文深入分析了Android和iOS两个主流移动操作系统在设计哲学、用户体验、技术架构等方面的显著差异。通过对比,揭示了这两种系统各自的独特优势与局限性,并探讨了它们如何塑造了我们的数字生活方式。无论你是开发者还是普通用户,理解这些差异都有助于更好地选择和使用你的移动设备。 ###
56 3
|
1月前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
1月前
|
网络协议 网络安全 Apache
一个整合性、功能丰富的.NET网络通信框架
一个整合性、功能丰富的.NET网络通信框架