1. 网络编程的目的
传播交流信息,数据交换。
1.1 想达到这个目的需要些什么
- 如何准确的定位网络上的一台主机,唯一的IP地址,端口,定位到这个计算机上的某个资源。
- 找到了这个主机,如何传输数据呢?
JavaWeb 网页编程 B/S架构 (Browser/Server架构即浏览器和服务器架构模式)
网络编程 TCP/IP C/S架构 (Client/Server架构,即服务器/客户端架构)
2. 网络通信的要素
如何实现网络的通信?
1 .通信双方地址:
- ip(Internet Protocol)网络之间互连的协议
- 端口号
2 . 规则:网络通信的协议
3. IP
ip地址在Java的类
:InetAddress
- ip作用:唯一定位一台网络上的计算机
- 本机的ip地址:127.0.0.1 或者用 localhost 来表示
3.1 ip地址的分类
- ipv4/ipv6
IPv4 的 IP 地址是一个 32 位的二进制数,算下来有 2^32 个地址。
IPv6 采用 128 位地址长度,保守估计将提供 2^128 个地址,IPv4 的 2^96 倍。 - 公网(互联网) 和 私网(局域网)
示例:
package net;import java.net.InetAddress;
import java.net.UnknownHostException;// 测试IP
public class TestInetAddress {public static void main(String[] args) throws UnknownHostException {// 查询本机地址System.out.println(InetAddress.getByName("127.0.0.1"));System.out.println(InetAddress.getByName("localhost"));System.out.println(InetAddress.getLocalHost());System.out.println("-----------------------------");// 查询网站ip地址System.out.println(InetAddress.getByName("www.baidu.com"));// 常用方法System.out.println(InetAddress.getByName("www.baidu.com").getHostAddress());// ipSystem.out.println(InetAddress.getByName("www.baidu.com").getHostName());// 域名}
}
运行结果:
4. 端口(Port)
端口表示计算机上面一个程序的进程。(每栋楼房相当于一个ip,每一户相当于端口)
- 不同的进程有不同的端口号,用来区分软件。端口号不能重复!
- 端口号的范围从 0 到 65535.
- 端口分类(按协议):TCP/UDP:每一个端口号的范围从 0 到 65535,意思是电脑上面最多可以同时跑65535*2个程序。单个协议下面,端口号不能冲突
- 端口分类(按功能):
5. 网络编程常用Doc命令
inetSocketAddress01.getHostName()
这个返回的结果是
这个是根据电脑上面C:\Windows\System32\drivers\etc\hosts
文件的配置得来的
netstat -ano # 查看电脑上所有的端口
netstat -ano|findstr "8606" # 查看指定端口的进程
也可以使用 ctrl + shift + ese 在任务管理器中查看端口
示例:
package net;import java.net.InetSocketAddress;public class TestInetSocketAddress {public static void main(String[] args) {InetSocketAddress inetSocketAddress01 = new InetSocketAddress("127.0.0.1", 8080);InetSocketAddress inetSocketAddress02 = new InetSocketAddress("localhost", 8080);System.out.println(inetSocketAddress01);System.out.println(inetSocketAddress02);System.out.println("--------------------------------");System.out.println(inetSocketAddress01.getAddress());// 地址System.out.println(inetSocketAddress01.getHostName());// 地址名称System.out.println(inetSocketAddress01.getPort());// 端口}
}
运行结果:
6. 域名
域名概念
域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识
- 域名形式易记忆,比IP地址有更多的选择。
- 一个域名只可以对应一个ip
- 一个ip可以对应多个域名
- 在Web应用中,域名和ip地址的关系是域名为了代替IP地址作为网址提供网站的访问入口。
7. 网站是如何进行访问的
请你谈谈网站是如何进行访问的。
- 输入一个域名,回车。
- 检查本机的
C:\Windows\System32\drivers\etc\hosts
配置文件有没有这个域名的映射。- 有,直接返回对应的ip地址,在这个地址中,有需要我们访问的web程序,我们可以直接访问
- 没有,去DNS服务器找,找的到就返回,找不到就不返回。
- 有,直接返回对应的ip地址,在这个地址中,有需要我们访问的web程序,我们可以直接访问