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:

    • 在通信实体上进行网络通讯的程序的唯一标识。

  • Socket编程:

    • 建立连接、接受请求、发送响应。

    •  

 

原文地址:https://www.cnblogs.com/77-is-here/p/13141525.html