20145315 《Java程序设计》第十周学习总结
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协议的约定,在进行数据传输时,系统只是尽全力传输数据,但是并不保证数据一定被正确传输,如果数据在传输过程中丢失,那就丢失了。
网络协议
网络协议是指对于网络中传输的数据格式的规定。
- 考虑客户端发送数据格式和服务器端反馈数据格式一一对应。
- 由于各种网络程序使用不同的协议格式,所以不同网络程序的客户端之间无法通用。
网络协议是网络程序的核心,所以在实际开始进行网络编程时,设计一个良好的协议格式也是必须进行的工作。
其他(感悟、思考等,可选)
参考资料
最新文章
- HDU 1231 最大连续子序列(水题)
- ubuntu上mysql服务器安装后只能本地连接不能远程连接的问题
- 解决Apache CXF 不支持传递java.sql.Timestamp和java.util.HashMap类型问题
- Debugging a Parallel Application
- gulp分享文档
- C# 读取EXCEL数据
- ReSharper 8.1支持Visual Studio 2013的特色——超强滚动条
- gsoap:实现线程池处理时获取到客户端的ip
- 博客已经迁移到 http://imbotao.top 也会同步到这儿
- 2017-07-04(sudo wc sort)
- 前端可视化项目流程,涉及three.js(webGL),3DMax技术,持续更新
- sys os
- node.js中对 redis 的安装和基本操作
- freopen
- [zz] MATLAB工具箱介绍
- std::set
- 原创:微信小程序+WEB使用JS实现注册【60s】倒计时功能
- Java Activiti 流程审批 后台框架源码 springmvc SSM 工作流引擎
- js控制iframe的刷新(页面局部刷新)
- 【spring源码学习】spring的远程调用实现源码分析
热门文章
- JS 添加js节点
- shell 强大的awk
- ajax操作的链式写法
- Fragments (官方文档中文版)
- Cookie/Session机制详解 <;转>;
- Java初学者笔记四:按行读写文件和输入处理
- linux 中 ll 命令显示 的大小 是什么单位的啊?
- 您需要安装旧 Java&#160;SE&#160;6 运行环境才能打开“Eclipse”。
- SSL安装方法一:在Windows Server 2008安装SSL证书(IIS 7.0)
- Linux系统下 Supervisor 安装搭建