两个主机进行通信:
1、首先要找的对方的IP
2、数据要发送到对方的指定的应用程序上,为了标识这些应用程序,所以给这些为了应用程序都用数字进行标识。为了方便称呼这个数字,叫做端口,该端口较逻辑端口。
3、定义通信规则。这个通信规则称为协议。
获取本地的主机名和ip地址:
import java.net.InetAddress; import java.net.UnknownHostException; public class IPdemo { public static void main(String[] args) throws UnknownHostException { InetAddress inet=InetAddress.getLocalHost(); System.out.println("address:"+inet.getHostAddress()); System.out.println("name:"+inet.getHostName()); } }
获取任意主机的地址和主机名:
import java.net.InetAddress; import java.net.UnknownHostException; public class IPdemo { public static void main(String[] args) throws UnknownHostException { //InetAddress inet=InetAddress.getLocalHost(); //System.out.println("address:"+inet.getHostAddress()); //System.out.println("name:"+inet.getHostName()); InetAddress iAddress=InetAddress.getByName("www.baidu.com"); System.out.println("address:"+iAddress.getHostAddress()); System.out.println("name:"+iAddress.getHostName()); } }
运行结果为:
address:119.75.213.61
name:www.baidu.com
注意:对于固定的域名来说,其ip地址不止一个,比如www.baidu.com这个主机不止一个IP地址,返回的ip地址不唯一。可通过getallByName来确定。
import java.net.InetAddress; import java.net.UnknownHostException; public class IPdemo { public static void main(String[] args) throws UnknownHostException { //InetAddress inet=InetAddress.getLocalHost(); //System.out.println("address:"+inet.getHostAddress()); //System.out.println("name:"+inet.getHostName()); /* InetAddress iAddress=InetAddress.getByName("www.baidu.com"); System.out.println("address:"+iAddress.getHostAddress()); System.out.println("name:"+iAddress.getHostName()); */ InetAddress[] iAddress=InetAddress.getAllByName("www.baidu.com"); System.err.println(iAddress.length); System.out.println("address:"+iAddress[0]); System.out.println("name:"+iAddress[1]); } }
运行结果为:
2
address:www.baidu.com/61.135.169.121
name:www.baidu.com/61.135.169.125