一简介

InetAddress是Java对IP地址的封装,代表互联网协议(IP)地址;
InetAddress对象的获取只能通过静态方法,比如根据主机名获取主机的ip地址封装对象:

?
1
InetAddress add=InetAddress.getByName("BOPZKQZ9SSY5ECY");

主机名:BOPZKQZ9SSXXXXX, ip地址:1XX.1XX.2XX.210

InetSocketAddress是SocketAddress的实现子类。

此类实现 IP 套接字地址(IP 地址 + 端口号),不依赖任何协议。
在使用Socket来连接服务器时最简单的方式就是直接使用IP和端口,但Socket类中的connect方法并未提供这种方式,而是使用SocketAddress类来向connect方法传递服务器的IP和端口。
SocketAddress只是个抽象类,它除了有一个默认的构造方法外,其它的方法都是abstract的,因此,我们必须使用SocketAddress的子类来建立SocketAddress对象,也就是唯一的子类InetSocketAddress

二主要功能方法

?
1
2
3
4
5
6
InetAddress address = InetAddress.getLocalHost();
System.out.println("主机名:" + address.getHostName() + ", ip地址:"
        + address.getHostAddress());
InetAddress add = InetAddress.getByName("BOPZKQZ9SSY5ECY");
System.out.println(add.getHostAddress());

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
final Socket socket = new Socket();
SocketAddress address = new InetSocketAddress("www.fortify.net", 443);
try {
    socket.connect(address);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}// 连接远程主机
Thread reader = new Thread() {
    @Override
    public void run() {
        try {
            byte[] buffer = new byte[512];
            InputStream stream = socket.getInputStream();
            socket.getInputStream().read(buffer);
        } catch (Exception ex) {
        }
    }
};
reader.start();

三两者区别

关键就是InetSocketAddress不基于任何协议,一般用于socket编程中。

?
1
表面看InetSocketAddress多了一个端口号,端口的作用:一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。
?
1
那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。
?
1
实际上是通过“IP地址+端口号”来区分不同的服务的。

转载于:https://www.cnblogs.com/JAYIT/p/6274745.html

InetAddress类和InetSocketAddress的使用相关推荐

  1. java之InetAddress类和InetSocketAddress的使用

    一.简介 InetAddress是Java对IP地址的封装,代表互联网协议(IP)地址: InetAddress对象的获取只能通过静态方法,比如根据主机名获取主机的ip地址封装对象: InetAddr ...

  2. java ip吸附_IP层的封装(Java的InetAddress类的C++实现)

    IP 层的封装 C++ 通用框架的设计 作者: naven 1 IP 层封装介绍 TCP/UDP 是网络编程的基础技术,分别代表面向连接的稳定的网络通信技术和非连接方式的广播形式的网络通信技术,它们都 ...

  3. Java网络编程之IP地址和InetAddress类

    Java语言的优势之一是Java程序能访问网络资源.Java提供一系列的类支持Java程序访问网络资源. TCP/IP协议和IP地址 为了进行网络通信,通信双方必须遵守通信协议.目前最广泛使用的是TC ...

  4. Java 利用InetAddress类确定特殊Ip地址

    IP地址分为普通地址和特殊地址.在前面的文章中所使用的大多数都是普通的IP地址,在本文中将介绍如何利用InetAddress类提供的十个方法来确定一个IP地址是否是一个特殊的IP地址. 一.isAny ...

  5. Java使用InetAddress类获取主机名和IP地址

    1.在Java中,地址可以由一个字符串来定义,这个字符串可以是数字型的地址(其中IPv4的地址型式为:192.168.72.1,其中IPv6的地址型式为:fe20:12a0::0abc:1234),也 ...

  6. InetAddress类常用方法

    Java提供InetAddress类来封装IP地址或域或名.InetAddress类有两个子类:Inet4Address和Inet6Address,分别用于封装4个字节的IP地址和6个字节的IP地址. ...

  7. [网络编程]InetAddress类的实例化

    /*一.网络编程中有两个主要的问题:1.如何准确的定位网络上一台或多台主机;定位主机上的特定的应用2.找到主机后如何可靠高效的进行数据传输二.网络编程中的两个要素:1.IP和端口号2.提供网络通信协议 ...

  8. Java基础 - 网络编程 - InetAddress类、Socket(TCP)举例使用

    文章目录 InetAddress类 相关方法 代码举例 Socket 基本介绍 基本介绍2 应用案例(TCP字节流) 应用案例2(TCP字节流) 注意(结束标记) 应用案例3(TCP字符流) 注意(结 ...

  9. 【Java网络编程】获得实验室局域网中所有开机主机名称和IP地址,InetAddress类,在java中如何获取IP地址的方法

    获得实验室所有主机的IP地址和主机名 一.InetAddress类 二.获得指定IP地址和主机名的主要方法以及练习 1.主要方法 2.源码 三.获得实验室局域网中所有开机主机名称和IP地址 1.源码 ...

最新文章

  1. 路印协议受邀参加澳洲新南威尔士政府孵化器Haymarket HQ分享论坛
  2. 隐藏层节点数对迭代次数分布规律的影响
  3. thinkphp5中资源文件路径的使用
  4. Tomcat 架构原理到架构设计,写得非常好!
  5. cast()函数用法
  6. Mac Generating Pods project Abort trap: 6
  7. 数据结构——队列的C++实现
  8. 醉了!用数据分析的方法帮你找到物美价廉的美酒 | 小长假放大招
  9. word文档保存发生错误_文档还是没有发生
  10. 访问ashx一般应用程序
  11. android launcher3 home页简易分析
  12. Javascript 特效大全
  13. Spring+Quartz实现文件中转站
  14. 手机摄像头采集并推流_助力网上广交会—OBS直播推流软件简易教程
  15. js实现图片的透明度运动
  16. 2020最新教师资格证《中学综合素质》必考知识点大全
  17. 美年旅游_自由行_自由行分页PageHelper
  18. Java实现OpenOffice将word转换为pdf
  19. memset,calloc的区别
  20. Python基础入门第二课--Python编辑器的选择

热门文章

  1. windows下mongodb配置
  2. Mysql无法创建外键的原因
  3. 串口调试神器之Docklight
  4. 无刷新读取数据库 (ajax)
  5. Openfiler之一:Openfiler的安装
  6. MOSS2007 webcast系列(二)
  7. 【Keras学习】常见问题与解答
  8. codefirst数据库迁移
  9. POJ 1125 Stockbroker Grapevine
  10. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十二:串口模块① — 发送