20145315 《Java程序设计》第十周学习总结
2016-05-08 20:15
302 查看
20145315 《Java程序设计》第十周学习总结
教材学习内容总结
网络概述
为了能够方便的识别网络上的每个设备,网络中的每个设备都会有一个唯一的数字标识,这个就是IP地址。IP地址实际上是一种地理标识IP地址和域名很好的解决了在网络中找到一个计算机的问题,但是为了让一个计算机可以同时运行多个网络程序,就引入了另外一个概念——端口(port)。计算机上可以并发运行多个网络程序,而不会在互相之间产生干扰。
网络通讯的过程:“请求-响应”模型。
第一次主动发起通讯的程序被称作客户端(Client)程序,简称客户端,而在第一次通讯中等待连接的程序被称作服务器端(Server)程序,简称服务器。一旦通讯建立,则客户端和服务器端完全一样,没有本质的区别。
C/S结构:分别开发客户端和服务器端
B/S结构:使用通用的客户端,只开发服务端
协议: 规定数据的格式,这个数据的格式就是协议。
在现有的网络中,网络通讯的方式主要有两种:
TCP(传输控制协议)方式:较可靠
UDP(用户数据报协议)方式:可能失败丢失
网络编程技术
客户端步骤:建立网络连接
交换数据
关闭网络连接
服务器端步骤:
监听端口
获得连接
交换数据
关闭连接
Java网络编程技术
InetAddress类:该类的功能是代表一个IP地址,并且将IP地址和域名相关的操作方法包含在该类的内部。
客户端编程
第一步:建立连接: Socket类型的对象代表网络连接 (TCP编程)如, Socket socket1 = new Socket(“192.168.1.103”,10000);
第二步:获得输出流和输入流:遵循“请求-响应”模型的规定,先向输出流中写入数据,这些数据会被系统发送出去,然后在从输入流中读取服务器端的反馈信息,这样就完成了一次数据交换过程,当然这个数据交换过程可以多次进行。
第三步:最后当数据交换完成以后,关闭网络连接,释放网络连接占用的系统端口和内存等资源,完成网络操作 socket1.close();
服务器编程
服务器端监听的代码为: ServerSocket ss = new ServerSocket(10000);
获得连接:当有客户端连接到达时,建立一个和客户端连接对应的Socket连接对象,实现获得连接的代码是 Socket socket = ss.accept();
在服务器端通信完成以后,关闭服务器端连接。实现的代码为 ss.close();
复用Socket连接。
服务器端支持多个客户端同时工作。
MulThreadSocketServer类实现服务器端控制,实现接收客户端连接,然后开启专门的逻辑线程处理该连接,LogicThread类实现对于一个客户端连接的逻辑处理,将处理的逻辑放置在该类的run方法中。
UDP
DatagramSocket类实现“网络连接” DatagramSocket ds = new DatagramSocket();
DatagramPacket类实现对于网络中传输的数据封装,包含发送方的地址、端口号等信息,也包含数据的内容。
按照UDP协议的约定,在进行数据传输时,系统只是尽全力传输数据,但是并不保证数据一定被正确传输,如果数据在传输过程中丢失,那就丢失了。
网络协议
网络协议是指对于网络中传输的数据格式的规定。考虑客户端发送数据格式和服务器端反馈数据格式一一对应。
由于各种网络程序使用不同的协议格式,所以不同网络程序的客户端之间无法通用。
网络协议是网络程序的核心,所以在实际开始进行网络编程时,设计一个良好的协议格式也是必须进行的工作。
其他(感悟、思考等,可选)
参考资料
Java学习笔记(第8版)《Java学习笔记(第8版)》学习指导
JAVA的网络编程
相关文章推荐
- 20145315 《Java程序设计》实验五实验报告
- 20145311 《Java程序设计》第十周学习总结
- 大数相乘(java)
- JAVA的String 类
- JDK安装与环境变量配置
- Java线程和线程池学习笔记
- SpringMVC原理
- Java设计模式之模板方法设计模式
- 20145334 第五次 java 实验报告
- java新手之每日学习篇
- java下的token校验
- java实现jdbc批量插入数据
- java学习笔记(十五)
- struts2如何防止表单重复提交
- JVM 并发性: Java 和 Scala 并发性基础
- Java中ArrayList和LinkedList区别 时间复杂度 与空间复杂度
- 20145312 《Java程序设计》第10周学习总结
- 20145334 《Java程序设计》第10周学习总结
- 20145238-荆玉茗 《Java程序设计》第五次实验报告
- Myeclipse错误:Errors occurred during the build. Errors running builder 'DeploymentBuilder' on project