网络编程day1-本地信息的获取

网络编程day1

1、InetAddress类

java.net
类 InetAddress

java.lang.Object
  继承者
java.net.InetAddress
所有已实现的接口:
Serializable
直接已知子类:
Inet4Address, Inet6Address

IP地址:定位一个节点:计算机。路由设备。通讯设备等

InetAddress :多个静态方法:

常用的两个 

getByName() ---通过域名| IP地址-->获取InetAddress 对象
getLocalHost() --获取本地主机

常用的两个 两个成员方法:
getHostName() ---返回主机名
getHostAddress() ---返回地址

测试类:

 1 package 本地信息;
 2 
 3 import java.net.InetAddress;
 4 import java.net.UnknownHostException;
 5 
 6 /**
 7  * IP地址:定位一个节点:计算机。路由设备。通讯设备等
 8  * 
 9  * InetAddress :多个静态方法:
10  * getByName() ---通过域名| IP地址-->获取InetAddress 对象
11  * getLocalHost() --获取本地主机
12  * 
13  * 两个成员方法:
14  * getHostName()  ---返回主机名
15  * getHostAddress() ---返回地址
16  * @author liuzeyu12a
17  *
18  */
19 public class TestIP {
20 
21     public static void main(String[] args) throws UnknownHostException {
22         
23         //使用getLocalHost得到InetAddress对象
24         InetAddress addr = InetAddress.getLocalHost();
25         System.out.println(addr.getHostName()); //返回本地主机名(虚拟网卡)
26         System.out.println(addr.getHostAddress()); //返回本地IP地址
27     
28         //根据域名得到InetAddress对象
29         addr = InetAddress.getByName("www.163.com");
30         System.out.println(addr.getHostName());
31         System.out.println(addr.getHostAddress());
32         
33         //根据IP地址得到InetAddress对象
34         addr = InetAddress.getByName("112.51.121.165");
35         System.out.println(addr.getHostAddress()); 
36         System.out.println(addr.getHostName()); //无法解析域名
37     }
38 }
View Code

 

2、InetSocketAddress类

 java.net

类 InetSocketAddress

java.lang.Object  

 继承者

java.net.SocketAddress      

   继承者

java.net.InetSocketAddress
所有已实现的接口:
Serializable

public class InetSocketAddress extends SocketAddress
 

此类实现 IP 套接字地址(IP 地址 + 端口号)。它还可以是一个对(主机名 + 端口号),在此情况下,将尝试解析主机名。如果解析失败,则该地址将被视为未解析 地址,但是其在某些情形下仍然可以使用,比如通过代理连接。

它提供不可变对象,供套接字用于绑定、连接或用作返回值。

通配符 是一个特殊的本地 IP 地址。它通常表示“任何”,只能用于 bind 操作。 

测试类:

 1 package 本地信息;
 2 
 3 import java.net.InetSocketAddress;
 4 
 5 /**端口:
 6  * 1、用于区分软件
 7  * 2、2个字节 0~65535 UDP,TCP
 8  * 3、同一个协议的端口不能冲突
 9  * 4、定义端口的端口号越大越好
10  * 
11  * InetSocketAddress构造器:
12  * new InetSocketAddress(IP地址|域名,端口);
13  * 方法:
14  * getPort()
15  * getHostName()
16  * getAddress()
17  * @author liuzeyu12a
18  *
19  */
20 public class TestPort {
21     public static void main(String[] args) {
22         
23         //包含端口
24         InetSocketAddress socketaddress1 = new InetSocketAddress("127.0.0.1",8080);
25         InetSocketAddress socketaddress2 = new InetSocketAddress("localhost",6666);
26         InetSocketAddress socketaddress3 = new InetSocketAddress("www.163.com",6666);
27     
28         //socketaddress1
29         System.out.println(socketaddress1.getPort());
30         System.out.println(socketaddress1.getHostName());
31         System.out.println(socketaddress1.getAddress());
32         
33         //socketaddress2
34         System.out.println(socketaddress2.getPort());
35         System.out.println(socketaddress2.getHostName());
36         System.out.println(socketaddress2.getAddress());
37         
38         //socketaddress3
39         System.out.println(socketaddress3.getPort());
40         System.out.println(socketaddress3.getHostName());
41         System.out.println(socketaddress3.getAddress());
42     }
43 }
View Code

3、URL类

java.net

类 URL

java.lang.Object
  继承者
java.net.URL
所有已实现的接口:
Serializable

public final class URLextends Objectimplements Serializable
 

URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。

 1 package 本地信息;
 2 
 3 import java.net.MalformedURLException;
 4 import java.net.URL;
 5 
 6 /**
 7  * URL: 统一资源定位器,互联网三大基石之一(html http),区分资源
 8  * 包含:
 9  * 1、协议
10  * 2、域名、计算机
11  * 3、端口:默认80
12  * 4、请求资源
13  * 例如:
14  * http://www.baidu.com/index.html?uname=lzy&age=18#a
15  * @author liuzeyu12a
16  *
17  */
18 public class TestUrl {
19 
20     public static void main(String[] args) throws MalformedURLException {
21         URL url = new URL("https://www.baidu.com:80"
22                 + "/index.html?uname=lzy&age=18&pwd=123#a");
23         
24         //获取四个值
25         System.out.println("协议:"+url.getProtocol());
26         System.out.println("域名|ip :"+url.getHost());
27         System.out.println("端口 :"+url.getPort());
28         System.out.println("请求资源:"+url.getPath());
29         System.out.println("请求资源:"+url.getFile());//完整路径
30         
31         //参数
32         System.out.println("参数:"+url.getQuery());
33         
34         //锚点
35         System.out.println("锚点:"+url.getRef());//在#后面的
36     }
37 }
View Code

具体的一些操作可查看jdk文档。

猜你喜欢

转载自www.cnblogs.com/liuzeyu12a/p/10389775.html