Java-网络编程之IP

107 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第26天,点击查看活动详情

InetAddress类

  • Internet上的主机有两种方式表示地址:
  • 域名(hostName):https://juejin.cn/
  • IP 地址(hostAddress):202.108.35.210
  • InetAddress类主要表示IP地址,两个子类:Inet4Address、Inet6Address。
  • InetAddress 类 对 象 含 有 一 个 Internet 主 机 地 址 的 域 名 和 IP 地 址 :https://juejin.cn/ 和 202.108.35.210。
  • 域名容易记忆,当在连接网络时输入一个主机的域名后,域名服务器(DNS)负责将域名转化成IP地址,这样才能和主机建立连接。 -------域名解析

InetAddress类方法

  • InetAddress类没有提供公共的构造器,而是提供了如下几个静态方法来获取InetAddress实例
  • public static InetAddress getLocalHost()
  • public static InetAddress getByName(String host)
  • InetAddress提供了如下几个常用的方法
  • public String getHostAddress():返回 IP 地址字符串(以文本表现形式)。
  • public String getHostName():获取此 IP 地址的主机名
  • public boolean isReachable(int timeout):测试是否可以达到该地址

InetAddress代码示例

InetAddress address_1 =InetAddress.getByName("www.juejin.com");
//获取InetAddress对象所含的域名
System.out.println(address_1);
//获取InetAddress对象所含的IP地址
System.out.println(address_1.getHostName());
//获取本机的域名和IP地址
System.out.println(address_1.getHostAddress());
InetAddress address_2=InetAddress.getLocalHost();
System.out.println(address_2);

网络协议

  • 网络通信协议 计算机网络中实现通信必须有一些约定,即通信协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。
  • 问题:网络协议太复杂 计算机网络通信涉及内容很多,比如指定源地址和目标地址,加密解密,压缩解压缩,差错控制,流量控制,路由控制,如何实现如此复杂的网络协议呢?
  • 通信协议分层的思想 在制定协议时,把复杂成份分解成一些简单的成份,再将它们复合起来。最常用的复合方式是层次方式,即同层间可以通信、上一层可以调用下一层,而与再下一层不发生关系。各层互不影响,利于系统的开发和扩展。