/**

* 编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。

* 一般有三种方法,Thread,Runnable,Callable.

* Runnable和Callable的区别是,

* (1)Callable规定的方法是call(),Runnable规定的方法是run().

* (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得

* (3)call方法可以抛出异常,run方法不可以

* (4)运行Callable任务可以拿到一个Future对象,表示异步计算的结果。

* 它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果

* 通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。

*/

/**

* 编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。

* 一般有三种方法,Thread,Runnable,Callable.

* Runnable和Callable的区别是,

* (1)Callable规定的方法是call(),Runnable规定的方法是run().

* (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得

* (3)call方法可以抛出异常,run方法不可以

* (4)运行Callable任务可以拿到一个Future对象,表示异步计算的结果。

* 它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果

* 通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。

*/

import java.net.UnknownHostException;

import java.net.InetAddress;

import java.util.concurrent.Callable;

import java.util.concurrent.ExecutionException;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

import java.util.concurrent.Future;

public class PublicIPResolver {

/**

* 通过域名获取ip

*

* @param host

*

*/

public static String getPublicIp(String host) {

try {

ExecutorService exec = Executors.newCachedThreadPool();

Future fs = exec.submit(new GetPublicIPTask(host));

return fs.get();

} catch (InterruptedException e) {

e.printStackTrace();

} catch (ExecutionException e) {

e.printStackTrace();

}

return null;

}

static class GetPublicIPTask implements Callable {

String host;

public GetPublicIPTask(String host) {

this.host = host;

}

@Override

public String call() throws Exception {

InetAddress inetAddress;

try {

inetAddress = java.net.InetAddress.getByName(host);

String ip = inetAddress.getHostAddress();// 获取主机ip

return ip;

} catch (UnknownHostException e) {

e.printStackTrace();

return null;

}

}

}

}

android根据ip获取域名_android常用工具类 通过域名获取ip相关推荐

  1. 【转】 Android快速开发系列 10个常用工具类 -- 不错

    原文网址:http://blog.csdn.net/lmj623565791/article/details/38965311 转载请标明出处:http://blog.csdn.net/lmj6235 ...

  2. Android快速开发系列 10个常用工具类

    目录(?)[+] 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38965311,本文出自[张鸿洋的博客] 打开大家手上的项目,基 ...

  3. Android开发常用工具类集合

    转载自:https://blog.csdn.net/xiaoyi_tdcq/article/details/52902844 Android开发常用工具类集合 android开发中为了避免重复造轮子, ...

  4. java file ip_java常用工具类 IP、File文件工具类

    本文实例为大家分享了java常用工具类的具体实现代码,供大家参考,具体内容如下 IP工具类 package com.jarvis.base.util; import java.io.IOExcepti ...

  5. Android 常用工具类,终局之战

    只要在Application 初始化即可 public class AndroidUtilsApplication extends Application { @Override public voi ...

  6. Android开发 几个常用工具类

    本文出自[张鸿洋的博客]并 做了部分修改. 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38965311 打开大家手上的项目,基 ...

  7. Android 常用工具类转换

    Android 常用单位转换的工具类 1. 常用单位转换的工具类 /*** 常用单位转换的工具类*/ public class ViewUtil {private ViewUtil() {/** ca ...

  8. 操作SD卡,获取文件目录及文件工具类Android,listView

    操作SD卡,获取文件目录及文件工具类Android 1.获取文件目录及文件工具类: DirectoryInfo  FileScan 1.1 DirectoryInfo: package com.gls ...

  9. javascript 总结(常用工具类的封装)(转)

    转载地址:http://dzblog.cn/article/5a6f48afad4db304be1e7a5f javascript 总结(常用工具类的封装) JavaScript 1. type 类型 ...

最新文章

  1. 数组-二维数组中的查找
  2. 各方评论《面向儿童的人工智能北京共识》:这是中国人工智能发展轨迹中的一份关键文件...
  3. 一文读懂MQTT协议
  4. 使用Session防止表单重复提交
  5. ubuntu: no module named _sqlite
  6. JS 创建自定义对象的方法
  7. css --- 行内框和内容区
  8. arm中断保护和恢复_嵌入式ARM系统异常和中断处理知识总结
  9. 小学音乐教学和计算机的融合,小学学科教学与计算机深度融合赛课心得体会(共4篇)...
  10. C++ vector库学习笔记
  11. 微课|中学生可以这样学Python(5.1.3节):列表常用方法
  12. java request获取域,Java Web - Servlet(13)HttpServletRequest详解(获取请求数据、请求分派、请求域)(二)...
  13. Opencv 中 Mat中元素的值读取方法总结
  14. ios visio流程图_Mac下有如Visio一样好用的流程图软件吗?
  15. PHP编写两个数的最小公倍数,两个数的最小公倍数怎么求
  16. Python 深拷贝和浅拷贝详解
  17. MVC《中国电信》项目研发总结
  18. flex布局---某个子元素独占一行
  19. linux下登录ftp使用lftp命令详解
  20. oracle触发器如何调试

热门文章

  1. iOS调用系统相机文字改为中文
  2. java 初识对象和对象引用的关系
  3. 给一个ul列表中点击到的li赋予样式
  4. ASP.NET Aries JSAPI 文档说明:AR.Form、AR.Combobox
  5. 求逆元 - HNU 13412 Cookie Counter
  6. NSStream线程阻塞处理
  7. php解析ip列表并入库
  8. yahoo註冊.com 域名1.99$/年
  9. 一步一步学Silverlight 2系列(3):界面布局
  10. .asmx支持post请求或者get请求调用(WebService 因 URL 意外地以 结束,请求格式无法识别 的解决方法)...