android常用工具类 通过域名获取ip
2014-10-13 10:18
459 查看
/**
* 编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。
* 一般有三种方法,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对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。
*/
/** * 编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。 * 一般有三种方法,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<String> 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> { 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 通过DHCP获取IP初步流程
- Android通过“http://ip.chinaz.com/getip.aspx”获取公网ip
- Android 6.0常用权限获取工具类
- C++:通过gethostbyname函数,根据服务器的域名,获取服务器IP
- C++——通过域名获取ip
- linux下gethostbyname通过域名获取IP的例子
- python通过域名获取IP简单的GUI界面
- Linux C 网络编程 - 获取本地 ip 地址,mac,通过域名获取对应的 ip
- C#通过域名获取IP(转)
- Linux C 网络编程 - 获取本地 ip 地址,mac,通过域名获取对应的 ip
- (android)通过wifiManager获取关于wifi的ip,dns....
- Android 开发的常用工具类(一)——ScreenUtils 可用于获取屏幕宽高,截屏的工具类
- Linux C 网络编程 - 获取本地 ip 地址,mac,通过域名获取对应的 ip 、获取本地主机的名字
- VC中通过域名获取IP
- Android-->分享工具类:判断网络状态,网络类型,获取网络IP(包括GSM IP)
- android 通过socket获取IP
- C++通过域名获取服务器IP
- C# .net通过域名获取IP(转)
- Android通过上下文获取常用目录context.openFileOutput();