Java网络编程

目录

1.网络编程

2.软件架构

2.1.网路通信协议

2.1.1.UDP协议

2.1.2.TCP协议

2.2.UDP的三种通信方式

2.3.TCP通信程序


1.网络编程

        计算机跟计算机之间通过网络进行数据传输。

-------------------------------------------------------------------------

网络分层

仅作了解,百度或请点这里。

Java网络编程_第1张图片


 

2.软件架构

  • B/S 架构:浏览器/服务器

    • 优点:
      • 不需要开发客户端,只需要页面    +服务端
      • 用户不需要下载,打开浏览器就能使用(eg:淘宝,京东等) 
    • 缺点:
      • 如果应用过大,用户体验受到影响
  • C/S 架构:客户端/服务器
    • 优点:
      • 画面精美额,体验较好
    • 缺点:
      • 需要开发客户端+服务端
      • 用户需要下载和更新

-------------------------------------------------------------------------

网络编程三要素:

  • IP
    • 设备在网络中的地址,是唯一的标识。
  • 端口号
    • 应用程序在设备中唯一的标识。
    • 由两个字节表示的整数,取值范围 :0 ~ 65535
  • 协议
    • 数据在网络中传输的规则,常见的协议有UDP、TCP、http、https、ftp。

-------------------------------------------------------------------------

  • IP地址
    • 唯一标识网络上的每一台计算机
  • IP地址的组成
    • 32位,由4个8位二进制数组成
  • IP地址 = 网络地址 + 主机地址
    • 网络地址:标识计算机或网络设备所在的网段
    • 主机地址:标识特定主机或网络设备

Java网络编程_第2张图片

IPv4  vs  IPv6:

IPv4:最多只有2^32次方个ip,目前已经使用完

     当前解决方案:利用局域网IP解决IP不够的问题

IPv6:为了解决IPv4不够用而出现,最多有2^128次方个ip。

-------------------------------------------------------------------------

IP地址的配置和检测

  • 查看IP地址,检测网络是否畅通
    • 查看本机的IP地址
      • ipconfig 
    • 测试网络是否通畅
      • ping 目标地址

      Java网络编程_第3张图片Java网络编程_第4张图片

      Java网络编程_第5张图片 

特殊的IP地址:127.0.0.1,也可以是 localhost,指本机IP。

-------------------------------------------------------------------------

2.1.网路通信协议

        计算机网络中,连接和通信的规则被称为网络通信协议。

2.1.1.UDP协议

  • 用户数据报协议
  • UDP是面向无连接tongxinxieyi
    • 速度快,有大小限制,一次最多发送64K,数据不安全,易丢失数据

2.1.2.TCP协议

  • 传输控制协议TCP
  • TCP协议是面向连接的通信协议
    • 速度慢,没有大小限制,数据安全

TCP

UDP

是否连接

面向连接

面向非连接

传输可靠性

可靠

不可靠

速度

-------------------------------------------------------------------------

2.2.UDP的三种通信方式

  • 单播
  • 组播
    • 组播地址:224.0.0.0~239.255.255.255,其中224.0.0.0~224.0.0.255为预留的组播地址
  • 广播
    • 广播地址:255.255.255.255

-------------------------------------------------------------------------

2.3.TCP通信程序

        在通信两端建立一个 Socket 对象,通信之间要保证连接已经建立,通过 Socket 产生IO流来进行网络通信。

 步骤:

Java网络编程_第6张图片

客户端(Socket):

  1. 创建客户端 Socket 对象(Socket)与指定服务器连接

    Socket socket = new Socket("localhost", 5000);

  2. 获取输出流对象,写数据

    OutputStream os = socket.getOutputStream();

  3. 释放资源

    void close()

服务器段(ServerSocket):

  1. 创建服务器端Socket 对象(ServerSocket)

    ServerSocket serverSocket = new ServerSocket(5000);

  2. 监听客户端连接,返回一个Socket对象

    Socket socket = serverSocket.accept();

  3. 获取输入流,读数据,并把数据显示在控制台

    InputStream is =socket.getInputStream();

  4. 释放资源

    void close()

----------------------------------------------------------------------------------

TCP三次握手和四次挥手

三次握手:

  • 第一次握手:客户端向服务器端发出连接请求,等待服务器确认

  • 第二次握手:服务器端向客户端回送一个响应,通知客户端收到了连接请求

  • 第三次握手:客户端再次向服务器端发送确认信息,确认连接

Java网络编程_第7张图片

 四次挥手:

Java网络编程_第8张图片

 

你可能感兴趣的:(Java核心编程API,java,eclipse,java高级)