您的位置:首页 > 理论基础 > 计算机网络

Java基础知识强化之网络编程笔记01:InetAddress类的概述和使用

2015-10-07 15:30 961 查看
1. InetAddress类InetAddress是Java对IP地址的封装,在java.net中有许多类都使用到了InetAddress,包括ServerSocket,Socket,DatagramSocket等等。
InetAddress是一个不可变对象: • InetAddress是一个对象,包含3个属性:主机名称、主机别名、主机ip[b] • 一个ip对应唯一一个主机名,一个主机名可以对应多个ip(一台计算机上有多个网络地址),一个域名可以对应多个ip(一个web服务有多台机器做负载均 衡),一个ip也可以对应多个域名(多个web服务器在同一台机器上)[/b][b] • 一般的主机别名就是:网站的域名,为了便于记忆 ,DNS通过主机别名或者主机名都能找到相应的IP[/b](1)

 所有已实现的接口:
Serializable
直接已知子类:
Inet4Address, Inet6Address


InetAddress这个类没有构造方法,我们回忆一下什么样的类没有构造方法,如下:

如果一个类没有构造方法:
A: 成员全部是静态的(Math,Arrays,Collections)
B: 单例设计模式(Runtime)
C: 类中有静态方法返回该类的对象(InetAddress)
class Demo {
private Demo(){}

public static Demo getXxx() {
return new Demo();
}
}
很明显通过API知道InetAddress是C这种情况。

(2)看InetAddress的成员方法:

 public static InetAddress getByName(String host):根据主机名或者IP地址的字符串表示得到IP地址对象


2. InetAddress使用代码示例:

 package com.himi.InetAddressDemo;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class InetAddressDemo {

public static void main(String[] args) throws UnknownHostException {
//创建IP地址对象
//InetAddress address = InetAddress.getByName("GDIZOK2X2LA0SQG");(本机)
//InetAddress address = InetAddress.getByName("49.123.72.145"");(本机)
InetAddress address = InetAddress.getByName("49.123.72.140");//同一个网络别的主机

//获取主机名 和 IP地址
String host = address.getHostName();
String IP = address.getHostAddress();
System.out.println("主机名为:"+host+"======="+"IP地址为"+IP);
}

}


运行效果,如下:

本机:





别的主机:(同一个网段)



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: