做网络编程里面主要关注两大东西:
1、定位:IP、端口、URL。IP是定位计算机;端口是定位软件;URL是定位软件里面的每一份资源,网络上面的每一份资源;
2、传输协议:TCP/UDP
服务器的地址不一定是一个,因为服务器的地址会有很多,会组建一个服务器的集群,服务器返回资源一般是根据就近最优原则,意思是说你在华东给你华东的,如果华东的节点坏了或者比较慢,可能西北的就顶上了,这就是集群的意思。
在域名跟IP地址之间有一个域名解析,叫DNS。DNS做的事情就是将IP地址转成有意义的字符串;或者将字符串反过来映射(指向)成对应的IP。DNS是电信厂商做的。
package com.sxt.loc;
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
* IP:定位一个节点:计算机、路由、通讯设备等
* InetAddress: 多个静态方法
* 1、getLocalHost:本机
* 2、getByName:根据域名DNS | IP地址 -->IP
*
* 两个成员方法
* 1、getHostAddress: 返回地址
* 2、getHostName:返回计算机名
* @author
*
*/
public class IPTest {
public static void main(String[] args) throws UnknownHostException {
//使用getLocalHost方法创建InetAddress对象 本机
InetAddress addr = InetAddress.getLocalHost();
System.out.println(addr.getHostAddress()); //返回:192.168.1.110
System.out.println(addr.getHostName()); //输出计算机名
//根据域名得到InetAddress对象
addr = InetAddress.getByName("www.shsxt.com");
System.out.println(addr.getHostAddress()); //返回 shsxt服务器的ip:
System.out.println(addr.getHostName()); //输出:www.shsxt.com
//根据ip得到InetAddress对象
addr = InetAddress.getByName("123.56.138.176");
System.out.println(addr.getHostAddress()); //返回 shsxt的ip:123.56.138.176
System.out.println(addr.getHostName()); //输出ip而不是域名。如果这个IP地 址不存在或DNS服务器不允许进行IP地址和域名的映射,
}
}