20145315 《Java程序设计》第十周学习总结

时间:2023-02-21 21:39:23

20145315 《Java程序设计》第十周学习总结

教材学习内容总结

网络概述

  1. 为了能够方便的识别网络上的每个设备,网络中的每个设备都会有一个唯一的数字标识,这个就是IP地址。IP地址实际上是一种地理标识

  2. IP地址和域名很好的解决了在网络中找到一个计算机的问题,但是为了让一个计算机可以同时运行多个网络程序,就引入了另外一个概念——端口(port)。计算机上可以并发运行多个网络程序,而不会在互相之间产生干扰。

  3. 网络通讯的过程:“请求-响应”模型。

第一次主动发起通讯的程序被称作客户端(Client)程序,简称客户端,而在第一次通讯中等待连接的程序被称作服务器端(Server)程序,简称服务器。一旦通讯建立,则客户端和服务器端完全一样,没有本质的区别。

  1. C/S结构:分别开发客户端和服务器端
    B/S结构:使用通用的客户端,只开发服务端

  2. 协议: 规定数据的格式,这个数据的格式就是协议。

  3. 在现有的网络中,网络通讯的方式主要有两种:
  • TCP(传输控制协议)方式:较可靠

  • UDP(用户数据报协议)方式:可能失败丢失

网络编程技术

  1. 客户端步骤:
  • 建立网络连接
  • 交换数据
  • 关闭网络连接
  1. 服务器端步骤:
  • 监听端口
  • 获得连接
  • 交换数据
  • 关闭连接
  1. Java网络编程技术
    InetAddress类:该类的功能是代表一个IP地址,并且将IP地址和域名相关的操作方法包含在该类的内部。

  2. 客户端编程
  • 第一步:建立连接: Socket类型的对象代表网络连接 (TCP编程)如, Socket socket1 = new Socket(“192.168.1.103”,10000);

  • 第二步:获得输出流和输入流:遵循“请求-响应”模型的规定,先向输出流中写入数据,这些数据会被系统发送出去,然后在从输入流中读取服务器端的反馈信息,这样就完成了一次数据交换过程,当然这个数据交换过程可以多次进行。

  • 第三步:最后当数据交换完成以后,关闭网络连接,释放网络连接占用的系统端口和内存等资源,完成网络操作 socket1.close();

  1. 服务器编程
  • 服务器端监听的代码为: ServerSocket ss = new ServerSocket(10000);
  • 获得连接:当有客户端连接到达时,建立一个和客户端连接对应的Socket连接对象,实现获得连接的代码是 Socket socket = ss.accept();
  • 在服务器端通信完成以后,关闭服务器端连接。实现的代码为 ss.close();
  1. 复用Socket连接。
  2. 服务器端支持多个客户端同时工作。

MulThreadSocketServer类实现服务器端控制,实现接收客户端连接,然后开启专门的逻辑线程处理该连接,LogicThread类实现对于一个客户端连接的逻辑处理,将处理的逻辑放置在该类的run方法中。

  1. UDP
  • DatagramSocket类实现“网络连接” DatagramSocket ds = new DatagramSocket();
  • DatagramPacket类实现对于网络中传输的数据封装,包含发送方的地址、端口号等信息,也包含数据的内容。
  • 按照UDP协议的约定,在进行数据传输时,系统只是尽全力传输数据,但是并不保证数据一定被正确传输,如果数据在传输过程中丢失,那就丢失了。

    网络协议

    网络协议是指对于网络中传输的数据格式的规定。
  1. 考虑客户端发送数据格式和服务器端反馈数据格式一一对应。
  2. 由于各种网络程序使用不同的协议格式,所以不同网络程序的客户端之间无法通用。
  3. 网络协议是网络程序的核心,所以在实际开始进行网络编程时,设计一个良好的协议格式也是必须进行的工作。

    其他(感悟、思考等,可选)

参考资料