-
20145325张梓靖 《Java程序设计》第10周学习总结
20145325张梓靖 《Java程序设计》第10周学习总结
教材学习内容总结
- 网络编程 网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输。
- 计算机网络 路由器和交换机组成了核心的计算机网络,计算机只是这个网络上的节点以及控制等,通过光纤、网线等连接将设备连接起来,从而形成了一张巨大的计算机网络。
- 共享 网络最主要的优势在于共享:共享设备和数据,现在共享设备最常见的是打印机。
- IP地址 对于网络编程来说,最主要的是计算机和计算机之间的通信,这样首要的问题就是如何找到网络上的计算机呢?这就需要了解IP地址的概念。网络中的每个设备都会有一个唯一的数字标识,这个就是IP地址。在计算机网络中,现在命名IP地址的规定是IPv4协议,该协议规定每个IP地址由4个0-255之间的数字组成,例如10.0.120.34。每个接入网络的计算机都拥有唯一的IP地址,这个IP地址可能是固定的,也可以是动态的。
- 域名但是由于IP地址不容易记忆,所以为了方便记忆,有创造了另外一个概念——域名(Domain Name),例如sohu.com等。一个IP地址可以对应多个域名,一个域名只能对应一个IP地址。在网络中传输的数据,全部是以IP地址作为地址标识,所以在实际传输数据以前需要将域名转换为IP地址,实现这种功能的服务器称之为DNS服务器,也就是通俗的说法叫做域名解析。IP地址的使用要比域名通用一些。
- 端口有了端口的概念以后,在同一个计算机中每个程序对应唯一的端口,这样一个计算机上就可以通过端口区分发送给每个端口的数据了,换句话说,也就是一个计算机上可以并发运行多个网络程序,而不会在互相之间产生干扰。有了IP地址和端口的概念以后,在进行网络通讯交换时,就可以通过IP地址查找到该台计算机,然后通过端口标识这台计算机上的一个唯一的程序。这样就可以进行网络数据的交换了。
- 网络通讯模型 网络通讯基于“请求-响应”模型。在网络通讯中,第一次主动发起通讯的程序被称作客户端(Client)程序,简称客户端,而在第一次通讯中等待连接的程序被称作服务器端(Server)程序,简称服务器。一旦通讯建立,则客户端和服务器端完全一样,没有本质的区别。
- 客户端和服务器端 网络编程中的两种程序就分别是客户端和服务器端。这种网络编程的结构被称作客户端/服务器结构,也叫做Client/Server结构,简称C/S结构;使用浏览器作为客户端的结构被称作浏览器/服务器结构,也叫做Browser/Server结构,简称为B/S结构。总之C/S结构和B/S结构是现在网络编程中常见的两种结构,B/S结构其实也就是一种特殊的C/S结构。P2P程序中既包含客户端程序,也包含服务器端程序。
- 协议格式 编写协议格式呢?答案是随意。只要按照这种协议格式能够生成唯一的编码,按照该编码可以唯一的解析出发送数据的内容即可。在实际的网络程序编程中,最麻烦的内容不是数据的发送和接收,因为这个功能在几乎所有的程序语言中都提供了封装好的API进行调用。
- 网络通讯的方式 网络通讯的方式主要有两种: 在网络通讯中,TCP方式就类似于拨打电话,使用该种方式进行网络通讯时,需要建立专门的虚拟连接,然后进行可靠的数据传输,如果数据发送失败,则客户端会自动重发该数据。而UDP方式就类似于发送短信,使用这种方式进行网络通讯时,不需要建立专门的虚拟连接,传输也不是很可靠,如果发送失败则客户端无法获得。由于TCP需要建立专用的虚拟连接以及确认传输是否正确,所以使用TCP方式的速度稍微慢一些,而且传输时产生的数据量要比UDP稍微大一些。论使用TCP方式还是UDP方式进行网络通讯,网络编程都是由客户端和服务器端组成。
- 客户端的编程 客户端的编程主要由三个步骤实现:1、 建立网络连接2、 交换数据3、 关闭网络连接
- 服务器端的编程 服务器端的编程步骤和客户端不同,是由四个步骤实现,依次是:1、 监听端口2、 获得连接3、 交换数据4、 关闭连接
- java.net 和网络编程有关的基本API位于java.net包中,该包中包含了基本的网络编程实现,该包是网络编程的基础。该包中既包含基础的网络编程类,也包含封装后的专门处理WEB相关的处理类
- TCP方式 一个基础的网络类——InetAddress类。该类的功能是代表一个IP地址,并且将IP地址和域名相关的操作方法包含在该类的内部。在Java语言中,对于TCP方式的网络编程提供了良好的支持,在实际实现时,以java.net.Socket类代表客户端连接,以java.net.ServerSocket类代表服务器端连接。
- 网络编程 在客户端网络编程中,首先需要建立连接,在Java API中以java.net.Socket类的对象代表网络连接,所以建立客户端网络连接,也就是创建Socket类型的对象,该对象代表网络连接,如果建立连接时,本机网络不通,或服务器端程序未开启,则会抛出异常。在Java语言中,数据传输功能由Java IO实现,也就是说只需要从连接中获得输入流和输出流即可,然后将需要发送的数据写入连接对象的输出流中,在发送完成以后从输入流中读取数据即可。先向输出流中写入数据,这些数据会被系统发送出去,然后在从输入流中读取服务器端的反馈信息。
- 多次数据交换那 么如何实现建立一次连接,进行多次数据交换呢?其实很简单,建立连接以后,将数据交换的逻辑写到一个循环中就可以了。这样只要循环不结束则连接就不会被关闭。按照客户端实现的逻辑,也可以复用服务器端的连接,实现的原理也是将服务器端的数据交换逻辑写在循环中即可,
- UDP方式UDP方式的网络编程也在Java语言中获得了良好的支持,由于其在传输数据的过程中不需要建立专用的连接等特点,所以在Java API中设计的实现结构和TCP方式不太一样。当然,需要使用的类还是包含在java.net包中。
学习进度条
|
代码行数(新增/累积) |
博客量(新增/累积) |
学习时间(新增/累积) |
重要成长 |
目标 |
3500行 |
28篇 |
300小时 |
|
第一周 |
150/150 |
1/1 |
20/20 |
|
第二周 |
100/250 |
1/2 |
22/42 |
|
第三周 |
150/400 |
2/4 |
21/63 |
|
第四周 |
1000/1400 |
1/5 |
27/90 |
|
第五周 |
300/1700 |
1/6 |
22/102 |
|
第六周 |
250/1950 |
2/8 |
22/124 |
|
第七周 |
150/2100 |
2/10 |
20/144 |
|
第八周 |
190/2290 |
2/12 |
18/152 |
|
第九周 |
80/2370 |
2/14 |
22/174 |
|
第十周 |
30/2670 |
2/16 |
20/194 |
|
参考资料
-
相关阅读:
HDU 4379 水题,大水,但我WA了很多次,做了很久
HDU 1712分组背包 考试复习安排
所谓的二维背包Triangular Pastures POJ 1948
ZOJ 1203 Swordfish Kruskal算法求最小生成树
POJ 2576 Tug of War二维背包恰好装满.
O(n*m)复杂度的多重背包coinsPOJ 1742
拓扑排序POJ 1094
页面右键下拉表
gb2312 unicode转换工具
INPUT读出URL里的变量名称
-
原文地址:https://www.cnblogs.com/zzjzzjzzj/p/5471066.html
Copyright © 2020-2023
润新知