Java连载124-网络编程

一、计算机网络基础

1.网络通信协议有很多种,目前应用最广泛的就是TCP/IP协议(Transmission Control Protocal/Internet Protocal,传输控制协议/英特网互联协议),UDP(User Datagram Protocal,用户数据报协议),ICMP(Internet Control Message Protocal,英特网络控制报文协议)和一些其他协议族。

2.基于TCP/IP的模型分成四个层次:

(1)应用层;如:HTTP\FTP\DNS

(2)传输层;如:TCP\IP

(3)网络层;如:IP\ICMP\IGMP

(4)链路层。如:驱动程序,接口

3.具体功能如下:

(1)链路层也称为网络接口层,该层负责监视数据在主机和网络之间的交换。事实上,TCP\IP本身并未定义该协议,而是由参与互连的各网络使用自己的物理层和数据链路层协议与TCP\IP模型的网络层进行连接;

(2)网络层也称为网络互联层,是整个TCP\IP的核心,它主要用于将传输的数据进行分组,将分组数据发送到目标计算机或者网络;

(3)传输层主要使网络程序进行通信,在进行网络通信时,可以采用TCP也可以采用UDP.

(4)应用层主要负责应用程序的协议,如HTTP\FTP

4.IP地址主要由两部分组成“网络.主机",IPv4使用4个字节构成,而IPv6使用16个字节构成

5.IP地址主要分为五类,常见的有三类

A类地址:由第一段的网络地址和其余三段主机地址组成,范围为:1.0.0.0~127.255.255.255

B类地址:由前两段的网络地址和其余两段的主机地址组成,范围为:

128.0.0.0~191.255.255.255

C类地址:由前三段的网络地址和其余一段的主机地址组成,范围为:

192.0.0.0~223.255.255.255

另外还有一个回送地址127.0.0.1,指的是本机地址,该地址一般用于测试,例如执行ping 127.0.0.1用来测试本机TCP\IP是否正常

6.端口号有两个字节表示,范围0~65535,其中0~1023的端口号由操作系统的网络服务所占用,用户普通的应用程序要是使用1024以上的端口号,防止端口号被另一个应用程序占用。

二、InetAddress

1.JDK中提供了一个与IP地址相关的InetAddress类,该类用于封装一个IP地址,并且提供了一系列与IP地址相关的方法,

方法

说明

InetAddress getByName(String host)

参数host表示指定的主机,该方法用于在给定主机名的情况下确定主机IP​地址。

InetAddress getLocalHost()

静态方法,创建一个表示本地主机的InetAddress对象

String getHostName()

得到IP地址的主机名,如果是本机则是计算机名,如果不是本机则是主机名,如果没有域名则是IP地址​。

boolean isReadchable(int timeout)

判断在指定时间内地址是否可以到达

String getHostAddress()

成员方法,得到字符串格式的原始IP地址

前两个方法用于获取该类的实例对象,第一个方法用于获得表示指定主机的InetAddress对象,第二个方法用于获得表示本机的InetAddress对象,通过InetAddress对象便可以获取指定主机名,IP地址等​。接下来演示一个案例

 

package com.bjpowernode.java_learning;

import java.net.InetAddress;

​

public class D124_InetAddressMethod {

​

  public static void main(String[] args) throws Exception{

    InetAddress localAddress = InetAddress.getLocalHost();

    InetAddress remoteAddress = InetAddress.getByName("www.baidu.com");

    System.out.println("本机的IP地址:"+localAddress.getHostAddress());

    System.out.println("baidu的IP地址:"+remoteAddress.getHostAddress());

    System.out.println("3s是否可以达到:"+remoteAddress.isReachable(3000));

    System.out.println("baidu的主机名为:"+remoteAddress.getHostName());

  }

}

 

需要值得注意的是,getHostName()方法用于得到某个主机的域名,如果创建的InetAddress对象是用主机名创建的​,则将该主机名返回;否则,将根据IP地址反向查找的对应的主机名,如果​找到将其返回,否则返回IP地址。​

三、源码

D124_InetAddressMethod.java

https://github.com/ruigege66/Java/blob/master/D124_InetAddressMethod.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

 

猜你喜欢

转载自www.cnblogs.com/ruigege0000/p/13179945.html
124