网络编程概述
一. 网络编程中有两个主要的问题:
1. 如何精确地定位网络上一台或多台主机; 定位主机上的特定的应用。
2. 找到主机后如何可靠高效地进行数据传输。
二. 网络编程中的两个要素:
1. 对应问题①: IP和端口号
2. 对应问题②: 提供网络通信协议: TCP/IP参考模型(应用层、传输层、网络层、物理层、数据链路层)
网络通信要素概述
IP:网络当中唯一定位的一台主角地址
端口号:用来区分一个主机上不同应用程序
通信要素1: IP和端口号
① IP
1. IP: 唯一的标识 Internet 上的计算机(通信实体)
2. 在Java中使用InetAddress类代表IP
3. IP分类: IPv4 和 IPv6 ; 万维网 和 局域网
4. 域名: www.baidu.com www.mi.com www.sina.com www.vip.com
域名解析:域名容易记忆,当在连接网络时输入一个主机的域名后,域名服务器(DNS)负责将域名转化为IP地址,这样才能和主机建立链接
5. 本地回路地址: 127.0.0.1 对应着: localhost
6. 如何实例化InetAddress: 两个方法: getByName(String host) 、 getLocalHost()
两个常用方法: getHostName()获取域名 和 getHostAddress()获取IP地址
.
//File file = new File("hello.txt");
InetAddress inet1 = InetAddress.getByName("192.168.1.101");
System.out.println(inet1);
InetAddress inet2 = InetAddress.getByName("www.baidu.com");
System.out.println(inet2);
InetAddress inet3 = InetAddress.getByName("localhost");
System.out.println(inet3);
//获取本地IP地址
InetAddress inet4 = InetAddress.getLocalHost();
System.out.println(inet4);
//getHostName() 获取域名
System.out.println(inet2.getHostName());
//getHostAddress() 获取IP地址
System.out.println(inet2.getHostAddress());
② 端口号
7. 端口号: 正在计算机上运行的进程
要求: 不同的进程有不同的端口号
范围: 被规定为一个16位的整数 0~65535
8. 端口号与IP地址的组合得出一个网络套接字: Socket