当前位置: 移动技术网 > IT编程>开发语言>Java > Java中的IP地址和InetAddress类使用详解

Java中的IP地址和InetAddress类使用详解

2019年07月22日  | 移动技术网IT编程  | 我要评论

java语言的优势之一是java程序能访问网络资源。java提供一系列的类支持java程序访问网络资源。
tcp/ip协议和ip地址

为了进行网络通信,通信双方必须遵守通信协议.目前最广泛使用的是tcp/ip协议,它是internet中各方所遵循的公共协议.tcp(transport control protocol)是一种传输控制协议,ip(internet protocol)是一种网际协议,tcp/ip代表这两个协议的。

tcp/ip分为四个层次:

  1. 网络接口层:负责接收和发送物理帧;
  2. 网络层:负责相邻节点之间的通信;
  3. 传输层:负责起点到终点的通信;
  4. 应用层:提供诸如文件传输、电子邮件等应用程序。

tcp协议将任何网络信息传输当作信息流。例如,机器a上的一个长报文发送到机器b,发送端a需要将数据分片,把一片片数据分别打包发送。数据包有一个头,指明该数据包发往何处、凶中数据在接收序列中所处的位置。每个包都按照ip地址提供的目的地从一个台机器传送到另一台机器,或从一个网络节点传送到另一个网络节点。在接收端b,这些数据包都能够按照正确的顺序重新组装起来。

tcp/ip协议是一个协议族,由一组协议组成,主要包含以下更具体的协议:
telnet(远程登录):允许一台计算机用户登录到另一台远程计算机上,使远程操作如同在本地计算机上操作一样。
ftp(file transfer protocol,文件传输协议):允许用户将远程主机上的文件复制到自己的计算机上。
smtp(simple mail transfer protocol,简单邮件传输协议):用于传输电子邮件。
nfs(network file server,网络文件服务器):使多台计算机透明地访问彼此的目录。
http:一种超文本传输协议,它是基于tcp/ip协议的,是www浏览器和服务器之间应用层的通信协议。http是一种通用、无状态、面向对象的协议。http会话(事务)包括四个步骤:连接(connection)、请求(request)、应答(response)和关闭(close)。

java语言可编写低层的网络应用。例如,传输文件,建立邮件控制器,处理网络数据等。java语言支持的internet协议有ftp、telnet、www等,支持网络通信的软件都在java.net包中,例如,java.net.ftp、java.net.www等。

ip地址用于指明因特网上的一台计算机在网络中的地址,用32位二进制代码表示一个网络地址。地址分a、b、c、d、e五类,常用的是a、b、c三类:
a(1.0.0.0-126.255.255.255):0,7位网络号,后24位为主机号;
b(128.0.0.0-191.255.255.255):10,14位网络号,后16位为主机号;
c(192.0.0.0-223.255.255.255):110,21位网络号,后8位为主机号;
d(224.0.0.0-239.255.255.255):1110,28位多点广播组标号;
e(240.0.0.0-254.255.255.255):1111,保留试验使用。

通常,ip地址用四段十进制数表示(8位一段)。例如:
    58.218.204.252
或用文字域名表示。例如:
    www.jb51.net
在因特网上,域名服务器(domain name server,dns)执行文字名称到二进制网络地址的映射。
inetaddress类

java.net包中有inetaddress类的定义,inetaddress类的对象用于ip地址和域名,该类提供以下方法:
getbyname(string s):获得一个inetaddress 类的对象,该对象中含有主机的ip地址和域名,该对象用如下格式表示它包含的信息:www.sina.com.cn/202.108.37.40;
string gethostname():获取inetaddress对象的域名;
string gethostaddress():获取inetaddress对象的ip地址;
getlocalhost():获得一个inetaddress对象,该对象含有本地机的域名和ip地址。

【例】 说明inetaddress类的用法的应用程序。程序演示如何获取www.weixueyuan.net的域名和ip地址。

import java.net.*;
class example10_1{
  public static void main(string args[]){
    try{ //以下代码通过域名建立inetaddress对象:
      inetaddress addr = inetaddress.getbyname(“www.jb51.net”);
      string domainname = addr.gethostname();//获得主机名
      string ipname = addr.gethostaddress();//获得ip地址
      system.out.println(domainname);
      system.out.println(ipname);
    }catch(unknownhostexception e){
      e.printstacktrace();
    }
  }
}

运行结果为:

www.jb51.net
58.218.204.252

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网