网络协议
1、IP协议(Internet Protocol):又称互联网协议,IP协议主要是告诉数据链路层,数据中转的方向。数据链路层只管把数据送到特定的目标地址。IP协议提供网间连接的完善功能,包括IP地址格式, IP地址不因数据链路层的改变而发生改变。一个IP包除了包含要传输的数据外,还包含源IP地址和目标IP地址,源端口和目标端口
2、TCP协议(Transmission Control Protocol,传输控制协议):是面向连接的协议,即在收发数据前,必须要和对方建立可靠的连接。一个TCP连接必须要经过三次握手才能建立起来,而断开要进行四次挥手,这里断开和连接的过程不再阐述。
3、UDP协议(User Data Protocol,用户数据报协议):UDP是一个非连接的协议,传输数据之前源端和终端不需要建立连接。使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。
import java.net.InetAddress;
import java.net.UnknownHostException;
public class TestIP {
public static void main(String[] args) throws UnknownHostException {
//InetAdress类表示IP地址
//获取本机IP
InetAddress ip = InetAddress.getLocalHost();// ADMINISTRATOR/192.xxx.xxx.xxx
System.out.println(ip);
//获得主机名
System.out.println(ip.getHostName());// ADMINISTRATOR
//获得IP地址
System.out.println(ip.getHostAddress());// 192.xxx.xxx.xxx
//getLocalHost=getHostName+getHostAddress
System.out.println(InetAddress.getByName("localhost"));
}
}
import java.net.InetAddress;
import java.net.UnknownHostException;
public class TestIP2 {
public static void main(String[] args) throws UnknownHostException {
InetAddress inetAddress = InetAddress.getByName("www.baidu.com");
// 获取此 IP 地址的主机名。
System.out.println(inetAddress.getHostName());
//返回 IP 地址字符串(以文本表现形式)。
System.out.println(inetAddress.getHostAddress());
}
}