JavaSE基础入门_017_网络编程
什么是网络
-
由点和线构成,表示诸多对象间的相互联系。
计算机网络
-
为实现资源共享和信息传递,通过通信线路连接起来的若干主机(Host)
-
按照地理范围网络分为:
-
局域网
-
城域网
-
广域网
-
-
网络编程:让计算机与计算机之间 建立连接、进行通信
网络模型-OSI参考模型
-
OSI(Open System Interconnection)开放式系统互连
-
第七层:应用层:负责文件访问和管理、可靠运输服务、远程操作服务。【HTTP、FTP、SMTP】
-
第六层:表示层:负责定义转换数据格式及加密,允许选择以二进制或ASCII格式传输。
-
第五层:会话层:负责使应用建立和维持会话,使通信在失效时继续恢复通信。【断点续传】
-
第四层:传输层:负责是否选择差错恢复协议、数据流重用、错误顺序重排。【TCP、UDP】
-
第三层:网络层:负责定义了能够标识所有网络节点的逻辑地址。【IP地址】
-
第二层:数据链路层:在物理层上,通过规程或协议(差错控制)来控制传输数据的正确性。【MAC】
-
第一层:物理层:为设备之间的数据通信提供传输信号和物理介质。【双绞线、光纤】
-
网络模型-TCP/IP参考模型
-
一组用于实现网络互联的通信协议,将协议分成四个层次。
-
第四层:应用层:负责传送各种最终形态的数据,是直接与用户打交道的层,典型协议是HTTP、FTP等。
-
第三层:传输层:负责传送文本数据,主要协议是TCP、UDP协议。
-
第二层:网络层:负责分配地址和传输二进制数据,主要协议是IP协议
-
第一层:网络接口层:负责建立电路连接,是整个网络的物理基础,典型的协议包括以太网、ADSL等。
-
TCP/UDP
-
TCP协议:Transmission Control Protocol 传输控制协议
-
是一种面向连接的、可靠的、基于字节流的传输层通信协议。数据大小无限制。建立连接的过程需要三次握手,断开连接的过程需要四次挥手。
-
-
UDP协议:User Datagram Protocol 用户数据报协议
-
是一种无连接【通信之前,不需要先建立链接】的传输层协议,提供面向事务的简单不可靠【对方有可能收不到】信息传送服务,每个包的大小64KB。
-
IP
-
IP协议:Internet Protocol 互联网协议/网际协议
-
负责数据从一台机器发送到另一台机器。
-
给互联网每台设备分配一个唯一标识(IP地址)。
-
-
IP地址分为两种:
-
IPV4:4字节32位整数,并分成4段8位的二进制数,每8位之间用圆点隔开,每8位整数可以转换为一个0~255的十进制整数。格式:D.D.D.D;形如:255.168.192.34
-
IPV6:16字节128位整数,并分成8段十六进制数,每16位之间用圆点隔开,每16位整数可以转换为一个0~65535的十进制整数。格式:X.X.X.X.X.X.X.X;FFFF.FFFF.FFFF.FFFF.FFFF.FFFF.FFFF.FFFF
-
IPV4的应用分类
-
A类:政府机构,1.0.0.1~126.255.255.254
-
B类:中型企业,128.0.0.1~191.255.255.254
-
C类:个人用户,192.0.0.1~223.255.255.254
-
D类:用于组播,224.0.0.1~239.255.255.254
-
E类:用于实验,240.0.0.1~255.255.255.254
-
回环地址:127.0.0.1,指本机,一般用于测试使用。
-
测试 IP 命令:ping D.D.D.D
-
查看 IP 命令:ipconfig
端口 Port
-
端口号:在通信实体上进行网络通讯程序的唯一标识。【两个字节】
-
TCP和UDP是两套端口号,即两套协议可以存在端口号一致的情况。
-
端口分类:
-
公认端口:0~1023
-
注册端口:1024~49151
-
动态或私有端口:49152~65535
-
-
常用端口:
-
MySQL:3306
-
Oracle:1521
-
Tomcat:8080
-
SMTP:25
-
Web服务器:80
-
FTP服务器:21
-
InetAddress类
-
概念:表示互联网协议(IP)地址对象,封装了与该IP地址相关的所有信息,并提供获取信息的常用方法。
-
方法:
-
public static InetAddress getLocalHost() //获得本地主机地址对象
public static InetAddress getByName(String host) //根据主机名称获得地址对象
public static InetAddress[] getAllByName(String host) //获得所有相关地址对象
public String getHostAddress() //获取IP地址字符串
public String getHostName() //获得IP地址主机名
-
网络编程
基于TCP的网络编程
-
Socket编程:
-
Socket(套接字)是网络中的一个通信节点
-
分为客户端 Socket 与服务器 ServerSocket
-
通信要求:IP地址 + 端口号
-
开发步骤
-
服务器端:
-
创建 ServerSocket,指定端口号
-
调用 accept 等待客户端接入
-
使用 输入流,接受请求 数据到服务端(等待)
-
使用 输出流,发送响应 数据给客户端
-
释放资源
-
-
客户端:
-
创建Socket,指定服务器 IP + 端口号
-
使用 输出流,发送请求 数据给服务器
-
使用 输入流,接受响应 数据到客户端(等待)
-
释放资源
-
## 总结
-
计算机网络:
-
为实现资源共享和信息传递,通过通信线路连接起来的若干主机。
-
-
TCP协议:
-
是一种面向连接的、可靠的、基于字节流的传输层通信协议。数据大小无限制。
-
-
IP:
-
分配给互联网设备的数字标签(唯一标识)。
-
-
Port:
-
在通信实体上进行网络通讯的程序的唯一标识。
-
-
-
建立连接、接受请求、发送响应。
-
-