前些日子找工作,因面Java方向,碰到不少面试官都问到java网络编程问题,由于之前没有接触过java网络编程,很是尴尬。回来思来想去,觉得搞Java的不会网络编程,是个缺陷,于是决定重零开始,弥补这个缺陷。
package testInetAddress;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.security.*;
//创建InetAddress对象的四个静态方法
/*
* 在InetAddress类中覆盖了Object类的toString方法,实现如下:
* public String toString() {
* return ((hostName != null) ? hostName : "") + "/" + getHostAddress();
* }
*/
public class MyInetAddress {
/* 1. getLocalHost()
* getLocalHost()方法,可以得到描述本机IP的InetAddress对象
* 当本机绑定了多个IP时,getLocalHost只返回第一个IP
*/
public static void getLocalHostTest() throws UnknownHostException {
InetAddress localAddress = InetAddress.getLocalHost();
System.out.println(localAddress);//結果 ZZQ/192.168.1.105
}
/* 2. getByName(String host)
* getByName(String host)有一个String类型参数host,可以通过这个参数指定远程主机的域名
* (1). 如果host所指的域名对应多个IP,getByName返回第一个IP。
* (2). 如果本机名已知,可以使用getByName方法来代替getLocalHost。
* (3). 当host的值是localhost时,返回的IP一般是127.0.0.1。
* (4). 如果host是不存在的域名,getByName将抛出UnknownHostException异常。
* (5). 如果host是IP地址,无论这个IP地址是否存在,getByName方法都会返回这个IP地址。
* */
public static void getByNameTest() throws UnknownHostException {
InetAddress localAddress = InetAddress.getByName("ZZQ");
System.out.println(localAddress);//結果 ZZQ/192.168.1.105
}
/* 3. getAllByName(String host)
* 该方法返回一个InetAddress类型的数组
* (1). getByName方法返回的IP地址就是getAllByName方法返回的第一个IP地址
* getByName的实现代码如下:
* public static InetAddress getByName(String host) throws UnknownHostException {
* return InetAddress.getAllByName(host)[0];
* }
* (2). 当host不存在时,getAllByName也会抛出UnknowHostException异常
* */
public static void getAllByNameTest() throws UnknownHostException {
InetAddress[] localAddress = InetAddress.getAllByName("www.neu.edu.cn");
for (InetAddress address : localAddress)
System.out.println(address);
}
/* 4.getByAddress(byte[] addr) getByAddress(String host, byte[] addr)
* (1). 这个方法必须通过IP地址来创建InetAddress对象,而且IP地址必须是byte数组形式
* (2). getByAddress方法并不验证这个IP地址是否存在,只是简单地创建一个InetAddress对象
* (3). 第二个重载形式多了一个host,这个host只是一个用于表示addr的别名
* */
public static void getByAddressTest() throws UnknownHostException {
byte ip[] = new byte[] { (byte) 141, (byte) 146, 8 , 66};
InetAddress localAddress = InetAddress.getByAddress(ip);
InetAddress address2 = InetAddress.getByAddress("Oracle官方网站", ip);
System.out.println(localAddress);//结果 /141.146.8.66
System.out.println(address2); //结果 Oracle官方网站/141.146.8.66
}
public static void main(String[] args) throws UnknownHostException {
getLocalHostTest();
getByNameTest();
getAllByNameTest();
getByAddressTest();
}
}
分享到:
相关推荐
网络编程 InetAddress 的使用
InetAddress域名解析
InetAddress表示ip地址,也就是主机,没有构造方法,只能通过一些get方法获取实例。如果通过主机名来获取InetAddress实例会调用本地的dns服务。
InetAddress类的代码,用来获取主机名和IP地址
InetAddress类的对象用于IP地址和域名,该类提供以下方法: getByName(String s):获得一个InetAddress 类的对象,该对象中含有主机的IP地址和域名,该对象用如下格式表示它包含的信息:...
InetAddress 类进行域名解析后,域名和ip会保存,如何清除。本资源娓娓道来。
可以获得本机及指定主机的IP地址 是源码
在读写活动完成之后,客户程序调用close()方法关闭流和流套接字,下面的代码创建了一个服务程序主机地址为198.163.227.6,端口号为13的Socket对象,然后从这个新创建的Socket对象中读取输入流,然后再关闭流和Socket...
Java网络编程基础-InetAddress类与URL类
示例3.1 使用InetAddress
主要介绍了Java编程中利用InetAddress类确定特殊IP地址的方法,InetAddress类是Java网络编程中一个相当实用的类,需要的朋友可以参考下
InetAddress简单使用例程。网上现有InetAddress例程老是闪退,这是自己重整理后可以使用的完整工程。
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/784338
1. 网络编程要素: 如何定位到网络上的一台或多台主机 IP地址和端口号 ...没有构造函数,只能通过静态方法返回对象 直接查看java文档,获取本机地址/域名地址等, 得到的返回值为一个对象,获取他们的信息
// 通过域名获得InetAddress对象 InetAddress addr = InetAddress.getByName(""); String domainName = addr.getHostName();// 获得主机名 String IPName = addr.getHostAddress();// 获得IP地址 System.out.println...
主要介绍了Java中的IP地址和InetAddress类使用详解,是Java入门学习中的基础知识,需要的朋友可以参考下
Xson是一个Java对象序列化和反序列化程序。支持Java对象到字节数组的序列化,和从字节数组到Java对象的反序列化。 Maven: <groupId>com.github.xsonorg</groupId> <artifactId>xson-core <version>1.0.1 ...
InetAddress的用法1 java视频 马克java社区 马克towin
InetAddress的用法2---马克-to-win Java视频 马克Java社区