android手机充当服务器端时,怎样获取本机的IP地址?

当进行TCP或者UDP通信时,一个设备会充当服务器端,另一个充当客户端来实现信息接收与发送(听师兄介绍说tomcat是一个集成好的服务器端,具体细节还不懂,这里也不用考虑,理解透彻后再来补充)。

一般情况下我们会把手机端当做一个客户端,与服务器端进行通信,这也是大多数情况。少数情况下我们也需要把手机端当成服务器端,比如通过手机直接获取某硬件的数据,而硬件需要指定IP地址,才能给服务器发送数据。

当连接网络后就会有一个IP地址,这个IP地址经常改变(不知能否像电脑端一样拥有一个固定的IP地址,这里的理解还不是很清晰,需要进一步学习后来补充),怎样自动获取这个IP地址呢?(通过查看手机详情也是可以的,太麻烦)。看下面代码:

 public void getIp(View v) {
    	 //获取wifi服务  
        WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
      //判断wifi是否开启  
        if (!wifiManager.isWifiEnabled()) {  
        wifiManager.setWifiEnabled(true);    
        }  
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();       
        int ipAddress = wifiInfo.getIpAddress();   
        String ip = intToIp(ipAddress);   
        get_ip_show.setText(ip);
        //get_ip_show要自己定义下
 }
  //将IP地址改为标准的形式
 private String intToIp(int i) {       
        
        return (i & 0xFF ) + "." +       
      ((i >> 8 ) & 0xFF) + "." +       
      ((i >> 16 ) & 0xFF) + "." +       
      ( i >> 24 & 0xFF) ;  
   }   
这是这段代码在模拟器上得到的结果:



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值