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)
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的成员方法:
2. InetAddress使用代码示例:
运行效果,如下:
本机:
别的主机:(同一个网段)
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); } }
运行效果,如下:
本机:
别的主机:(同一个网段)
相关文章推荐
- 【Java】java和android网络编程 - 对byte数组压缩和解压缩(zip,gzip,bzip2,jzlib)
- 有上下界的网络流问题
- iOS开发网络篇—监测网络状态
- IP地址如何在网络中唯一地标识一台主机
- iOS网络编程学习
- httpUrlConnection 的 setDoOutput 与 setDoInput
- TCP和UDP发送数据包的大小问题
- 【HTTP】Web服务器工作流程小结--从建立连接到日志记录
- 计算机网络部分的面试常考点
- Swift - 网络请求报App Transport Security has blocked a cleartext错
- TCP性能的考虑
- TCP WRAPPERS、denyhosts软件的安装和配置、PAM身份认证模块应用
- SDN,网络
- Android加载网络图片学习过程
- UI高级第五课 网络通信——iOS学习连载33
- android开发--获取网络图片,读取进度条
- Java笔记---网络编程
- windows下 Sparse Bundle Adjustment 编译问题--FUIMCAT的文章--CFANZ社区--IT技术分享网站 http://www.cfanz.cn/?c=article
- 浅谈HTTP中Get与Post的区别
- RTP、RTCP及媒体流同步