方法的描述
1 、public static InetAddress getLocalHost() 获得主机名和IP地址
2、public String getHostAddress() 获取IP地址
3 、public String getHostName() 获取主机名
4、public static InetAddress getByName(String host) 根据主机名获得IP地址
注意事项:有可能返回的主机ip有很多,只是显示了中的一个
端口(port)是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。
端口号是传输层协议的内容。
端口号是一个2字节16位的整数;
端口号用来标识一个进程,告诉操作系统,当前这个数据交给哪一个程序进行解析;
IP地址 + 端口号能标识网络上的某一台主机的某一个进程;
一个端口号只能被一个进程占用。
端口号是一个2字节16位的整数;
端口号用来标识一个进程,告诉操作系统,当前这个数据交给哪一个程序进行解析;
IP地址 + 端口号能标识网络上的某一台主机的某一个进程;
一个端口号只能被一个进程占用。
传输协议
UDP(User Datagram Protocol ):是OSI参考模型中的传输层协议,是一个简单的面向消息的传输层协议,尽管UDP提供标头和有效负载的完整性验证(通过校验和),但它不保证向上层协议提供消息传递,并且UDP层在发送后不会保留UDP 消息的状态。因此,UDP有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。
UDP(User Datagram Protocol ):是OSI参考模型中的传输层协议,是一个简单的面向消息的传输层协议,尽管UDP提供标头和有效负载的完整性验证(通过校验和),但它不保证向上层协议提供消息传递,并且UDP层在发送后不会保留UDP 消息的状态。因此,UDP有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。
UDP使用具有最小协议机制的简单无连接通信模型。UDP提供数据完整性的校验和,以及用于在数据报的源和目标寻址不同函数的端口号。
相当于収短信(有字数限制),不需要建立连接,数据报的大小限制在64k内,效率较高,不安全,容易丢包
TCP(Transmission Control Protocol ):把连接作为最基本的对象,每一条TCP连接都有两个端点,这种断点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为192.3.4.16 而端口号为80,那么得到的套接字为192.3.4.16:80。
TCP(Transmission Control Protocol ):把连接作为最基本的对象,每一条TCP连接都有两个端点,这种断点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为192.3.4.16 而端口号为80,那么得到的套接字为192.3.4.16:80。
相当于打电话,需要建立连接,效率相对比较低,数据传输安全,三次握手完成。 (点名—>答到—>确认)
Socket套接字
Socket (套接字)可以看成是两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。
这个连接的一端称为一个socket。
Java中使用Socket完成TCP程序的开収,使用此类可以方便的建立可靠的、双向的、持续性的、点对点的通讯连接
在Socket的程序开収中,服务器端使用ServerSocket等待客户端的连接
对于java的网络程序来讲,每一个客户端都使用一个Socket对象表示
Socket (套接字)可以看成是两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。
这个连接的一端称为一个socket。
Java中使用Socket完成TCP程序的开収,使用此类可以方便的建立可靠的、双向的、持续性的、点对点的通讯连接
在Socket的程序开収中,服务器端使用ServerSocket等待客户端的连接
对于java的网络程序来讲,每一个客户端都使用一个Socket对象表示
获得百度的主机名和一些基本方法使用
import java.net.InetAddress;
import java.net.UnknownHostException;
public class InetAddressDemo {
public static void main(String[] args) throws UnknownHostException {
InetAddress inetAddress = InetAddress.getLocalHost();
System.out.println(inetAddress);
InetAddress address = InetAddress.getByName("www.baidu.com");
System.out.println(address);
System.out.println(address.getHostName());
System.out.println(address.getHostAddress());
}
}
运行图