一、网络编程中有两个主要的问题:
- 如何准确的定位网络上的一台或多台主机;定位主机上的特定的应用
- 找到主机后如何可靠高效地进行数据传输
二、网络编程中的两个要素
- 对应问题一:IP和端口号
- 对应问题二:提供网络通信协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路层)
三、通信要素一:IP和端口号
- IP:唯一的标识Internet上的计算机(通信实体)
- 在Java中使用InetAddress类代表IP
- IP分类:(IPV4、IPV6)或(万维网、局域网)
- 域名:www.baidu.com
- 本地回路地址:127.0.0.1 对应着:localhost
- 如何实例化InterAddress:
- 两个方法:getByName(String host)、getLocalHost()
- 两个常用方法:getHostName()/getHostAddress()
- 端口号:正在计算机上运行的进程
- 要求:不同的进程有不同的端口号
- 范围:被规定为一个16位的整数:0~65535
- 端口号与IP地址的组合构成了一个网络套接字:Socket
public class InterAddressTest {
public static void main(String[] args) {
try {
InetAddress inet1 = InetAddress.getByName("192.168.10.14");
System.out.println(inet1);
InetAddress inet2=InetAddress.getByName("www.baidu.com");//www.baidu.com/61.135.185.32
System.out.println(inet2);
InetAddress inet3=InetAddress.getByName("127.0.0.1");
System.out.println(inet3);
//获取本机的IP
InetAddress localHost = InetAddress.getLocalHost();
System.out.println(localHost);
//getHostName():获取当前对象的域名
System.out.println(inet2.getHostName());//www.baidu.com
//getHostAddress():获取当前对象的IP
System.out.println(inet2.getHostAddress());//61.135.185.32
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}