InetAddress
作用:封装计算机的IP地址和DNS(没有端口信息)。
注:DNS是Domain Name System,域名系统。
特点:这个类没有构造方法。如果要得到对象,只能通过静态方法:getLocalHost()、getByName()、 getAllByName()、 getAddress()、getHostName()。
import java.net.InetAddress;
import java.net.UnknownHostException;
public class ipTest {
public static void main(String[] args) throws UnknownHostException {
InetAddress addr = InetAddress.getLocalHost();
System.out.println("本机IP-->"+addr.getHostAddress());
System.out.println("本机名称-->"+addr.getHostName());
addr = InetAddress.getByName("192.168.43.136");// 根据域名/IP得到InetAddress对象
System.out.println(addr.getHostName());
addr = InetAddress.getByName("DESKTOP-I1QO94G");
System.out.println(addr.getHostAddress());
}
}
InetSocketAdress
包含IP和端口信息,常用于Socket通信。此类实现 IP 套接字地址(IP 地址 + 端口号),不依赖任何协议。
端口:
1、区分主机上的软件。
2、2个字节,0-65535。TCP/UDP
3、同一协议端口不能冲突。
4、端口定义越大越好。
5、新增getPort方法。
public class portTest {
public static void main(String[] args) {
InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1",8080);
System.out.println(socketAddress.getAddress());
System.out.println(socketAddress.getHostName());
System.out.println(socketAddress.getPort());
}
}