WIFI项目--Android 获取本机IP(wifi下),子网掩码,网关,dns等信息

2024-06-09 14:58

本文主要是介绍WIFI项目--Android 获取本机IP(wifi下),子网掩码,网关,dns等信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

近期在捣鼓一个小项目,利用wifi热点在两手机上传输文件。进度有点慢,下面是遇到的一些小问题:
1获取手机所连接的wifi路由器ip:

ublic class MainActivity extends Activity {  private WifiManager my_wifiManager;  private WifiInfo wifiInfo;  private DhcpInfo dhcpInfo;  private TextView tvResult;  @Override  protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  my_wifiManager = ((WifiManager) getSystemService("wifi"));  dhcpInfo = my_wifiManager.getDhcpInfo();  wifiInfo = my_wifiManager.getConnectionInfo();  tvResult = (TextView) findViewById(R.id.tvResult);  }  @Override  protected void onResume() {  super.onResume();  StringBuilder sb = new StringBuilder();  sb.append("网络信息:");  sb.append("\nipAddress:" + intToIp(dhcpInfo.ipAddress));  sb.append("\nnetmask:" + intToIp(dhcpInfo.netmask));  sb.append("\ngateway:" + intToIp(dhcpInfo.gateway));  sb.append("\nserverAddress:" + intToIp(dhcpInfo.serverAddress));  sb.append("\ndns1:" + intToIp(dhcpInfo.dns1));  sb.append("\ndns2:" + intToIp(dhcpInfo.dns2));  sb.append("\n");  System.out.println(intToIp(dhcpInfo.ipAddress));  System.out.println(intToIp(dhcpInfo.netmask));  System.out.println(intToIp(dhcpInfo.gateway));  System.out.println(intToIp(dhcpInfo.serverAddress));  System.out.println(intToIp(dhcpInfo.dns1));  System.out.println(intToIp(dhcpInfo.dns2));  System.out.println(dhcpInfo.leaseDuration);  sb.append("Wifi信息:");  sb.append("\nIpAddress:" + intToIp(wifiInfo.getIpAddress()));  sb.append("\nMacAddress:" + wifiInfo.getMacAddress());  tvResult.setText(sb.toString());  }  private String intToIp(int paramInt) {  return (paramInt & 0xFF) + "." + (0xFF & paramInt >> 8) + "." + (0xFF & paramInt >> 16) + "."  + (0xFF & paramInt >> 24);  }  
}

项目思路:
思路一:手机A在创建热点后,开启tcp服务等待请求,手机B连上手机A的wifi热点后,B向A发送上线请求(单播)。

思路二:1.开启热点一方使用开启udp监听请求,并且发送上线请求(广播);接下来连上该热点的手机同样采用这个方式,1监听–2广播;这样的好处是大家都知道对方的存在,是真正意义的群聊。2.发送文件阶段,发送方A先向接收方B方发送文件的数量以及名称等参数,发送方A并建立TCP服务等待请求,接收方发送N个数量的请求,发送方A相应创建N个线程发送文件。

今天先写这么多。。。看看资料先

项目github连接:https://github.com/AriesJiang/WIFIAPComm

这篇关于WIFI项目--Android 获取本机IP(wifi下),子网掩码,网关,dns等信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1045505

相关文章

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa