20155335俞昆《java程序设计》第十周总结
学号 2016-2017-2 《Java程序设计》第十周学习总结
##
事实上网络编程,我们可以简单的理解为两台计算机相互通讯数据而已,对于程序员而言,掌握一种编程接口并使用一种编程模型相对而言就简单多了,javaSDK提供了一些相对简单的Api来完成12这些工作,Socket就是其中之一,对于java而言,Api的存在和java.net包里面。因此只要导入这个包就可以准备网络编程了。
客户机到服务机的模型就是网络编程的基本模型,简单的说就是引进这两个进程之间的相互通信,其中一个必须提供固定的位置,二、而另一个只需要知道这个固定的位置,并去建立两者之间的通讯,,然后完成两者的通讯就可以了,这里提供的位置通常都是成为服务器,建立联系到的通常叫客户端,给予简单的模型,就可以进入网络编程了。
在java中,有很多API可以支持这种模型,最典型的之一即socket的编程接口,对于java而言已经简化了Socket编程接口,我们需要讨论有关提供固定位置的服务方是如何建立的,java提供了SeverSocket来对其进行支持,事实上当我们创建了类的一个实例对象并提供了一个端口资源就建立一个固定位置,这个位置可以让其他计算机来访问。
代码:
这里端口的分配是唯一的,因为端口是为了唯一标识每台计算器唯一服务的,另外端口是为了唯一表示每台计算器唯一服务的,另外端口号是从0~65535之间的,前1024个端口已经被Tcp/Ip作为保留端口,因此所分配的端口只能是1024个之后的,有了固定位置,现在所需要的就是一根连线,该连线由客户方首先提供要求,因此java同样提供了一个Socket对象来对其进行支持,只要客户方创建一个Socket实例对象进行支持就可以了。
代码:
Socket client = new Socket(InetAddress.getLocalHost(),5678);
客户机必须知道有关服务器的IP地址,对于这一点java提供了一些相关的类InetAddress该对象的实例必须通过static方法来提供,静态方法想得到InetAdress的方法可以通过本机的IP和通过名字或IP直接得到,除非是远程掉用。处理问题的核心在执行,否则数据的交互仍然依赖于IO操作。
这两种基本的方法就可以建立一种连线,让两台计算机相互交流,数据必须传输,事实上Input/output操作总是和网络编程息息相关,因为底层的网络总是可以继续数据,除非是远程调用,所以必须导入java.IO这个包,java.IO的操作并不复杂,该操作提供一种针对字节流和Unicode的读者和写者,然后提供一个缓冲用于数据的读写。
Java代码
BufferedReader in=new BufferedReader(new InputStreamReader(sever.getInputStream()));
PrintWriter out =new PrintWriter(server.getOutputStream);、
上面两句就是建立缓冲并把原始的字节流转变为Unicode可以操作,而原始的字节流来源于Socket的两个方法,getInputStream()和getoutputStream()方,分别用来得到输入和输出,现在有了基本的模型和基本的操作工具,我们可以做一个简单的Socket历程。
Import java.io*;
Import java.net*;
Public class MyServer{
Public static void main(String[] args)throws IoExpection{
SeverSocket server = new SeerverSocket(5678);
Socket client=server.accept();
\ BufferedReader in=
New BufferedReader(new InputStreamReader(client.getInputStream()));
PrinterWriter out=new PrintWriter(client.getOutputStream());
While(ture)
{
String str=in.readLine();
System.out.println(str);
Out.println(“has recesive…”);
Out.flush();
If(str.equals(“end”))
Break;
}
Client.close();
}
}
混合密码系统
首先,在学术界,公开密码密钥系统在科学界激起了兴奋,在公开密码学问世的当年,NSA将IBM公司设计的传统加密系统推荐为联邦数据加密标准。
现实世界证明,公开密钥算法不会代替对称密钥算法,公开密钥算法不用来加密消息,而用来加密密钥,这样做有两个理由:
(1).公开密钥算法比对称算法要慢,在一般情况下,对称算法的速度是公开密钥算法的1000倍
(2)公开密钥系统对选择明文攻击是脆弱的。如果C=E(P),当P是n个可能明文集中的一个明文时,密码分析者只需要加密所有n个可能的明文,并与C比较结果(加密密钥是公开的)。用这种方法,不可能恢复解密密钥,但他能确定p。
(3)在大多数实践中,公开密钥密码用来保护和分发会话密钥(session key),这些会话密钥会在对称算法中,对通信消息进行保密,有时称这位通信系统为混合密码系统。
尽量简单的总结一下本周学习内容
尽量不要抄书,浪费时间
看懂就过,看不懂,学习有心得的记一下
## 教材学习中的问题和解决过程
- 问题1:XXXXXX
- 问题1解决方案:XXXXXX
- 问题2:XXXXXX
- 问题2解决方案:XXXXXX
- ...
## 代码调试中的问题和解决过程
- 问题1:XXXXXX
- 问题1解决方案:XXXXXX
- 问题2:XXXXXX
- 问题2解决方案:XXXXXX
- ...
## [代码托管](码云学习项目链接)
http://git.oschina.net/tianmaxingkomg/xinjianxianmu
(statistics.sh脚本的运行结果截图)
## 上周考试错题总结
- 错题1及原因,理解情况
- 错题2及原因,理解情况
- ...
## 结对及互评
### 评分标准
1. 正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
2. 模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- [代码托管](链接)不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
- 上周博客互评情况
- [学号1](博客链接)
- [学号2](博客链接)
- [学号3](博客链接)
- [学号4](博客链接)
- ...
## 其他(感悟、思考等,可选)
xxx
xxx
## 学习进度条
| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长|
| -------- | :----------------:|:----------------:|:---------------: |:-----:|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 300/500 | 2/4 | 18/38 | |
| 第三周 | 500/1000 | 3/7 | 22/60 | |
| 第四周 | 300/1300 | 2/9 | 30/90 | |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:[软件工程软件的估计为什么这么难](http://www.cnblogs.com/xinz/archive/2011/04/05/2005978.html),[软件工程 估计方法](http://www.cnblogs.com/xinz/archive/2011/04/06/2007294.html)
20155335俞昆《java程序设计》第十周总结的更多相关文章
- 201521123027 <java程序设计>第十周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 多线程: 2.书面作业 Q1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...
- Java程序设计第十周学习总结
Java课程知识梳理: 流的区分; 字符流与字节流的区别: 字节流是直接操作文件本身的,如果没有关闭字节流操作,文件会依然输出内容 而字符流在程序运行之后会发现文件没有任何的内容,这是因为字符流操作的 ...
- 20155335俞昆《Java程序设计》第五周总结
# 20155335 <Java程序设计>第五周学习总结 ## 教材学习内容总结 ## 教材学习中的问题和解决过程 对于异常处理,程序中总有意想不到的状况所引发的的错误,Jav ...
- 20155335俞昆《java程序设计》第三周总结
20155335 2006-2007-2 <Java程序设计>第三周学习总结 ## 教材学习内容总结 首先,关键是区基本类型和类类型,,产生对象必须定义类,类是一个概念,并不存在,对 ...
- 20155335 俞昆 2016-2017-2 《Java程序设计》第九周学习总结
学号 2016-2017-2 <Java程序设计>第九周学习总结 ##JDBC入门 在正式介绍JDBC前,已知JDBC是用来执行SQL的解决方案,开发人员使用JDBC的标准接口,开发人员不 ...
- 201671010140. 2016-2017-2 《Java程序设计》java学习第十周
---恢复内容开始--- Java学习第十周 本周,学习泛型程序设计,泛型也被称为参数化类型(parameterized type),就是在定义类.接口和方法时,通过类型参数指示将要处理的 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
随机推荐
- 百度安卓sdk开发
一 key问题 1 在百度地图api控制台申请key的流程主要用到了app包,开发工具的开发sha1和发布sha1值,这2个值的获取就非常关键了. 一般来说我们都是在windows上开发安卓,使用an ...
- mysql中删除重复记录,并保留重复数据中的一条数据的SQL语句
正好想写一条删除重复语句并保留一条数据的SQL,网上查了一部分资料写的很详细,但还是在这里写下自己的理解,以遍后续学习 .如下: 表字段和数据: SQL语句: [sql] view plain cop ...
- 前台界面(1)---HTML基本定义及常见标签
已经很久没有更新博客了,从今天开始要继续走在学习的路上,话不多说,先来干货: 目录 1. HTML定义 2. H标签 3. Img标签 4. P标签 5. A标签 6. 无序列表 7. 有序列表 8. ...
- POJ1061:青蛙的约会——题解
http://poj.org/problem?id=1061 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定 ...
- BZOJ1507 [NOI2003]Editor 【splay】
1507: [NOI2003]Editor Time Limit: 5 Sec Memory Limit: 162 MB Submit: 4129 Solved: 1660 [Submit][St ...
- React的this.props.children
this.props用来获取组件从外部传入的属性,但是this.props.children比较特殊,它是由React给添加上的,表示组件的所有子节点.this.props.children可以用来读 ...
- bzoj1052: [HAOI2007]覆盖问题(二分+构造)
貌似又写出了常数挺优(至少不劣)的代码>v< 930+人AC #49 写了个O(nlogn)貌似比一些人O(n)还快2333333 这题还是先二分答案,check比较麻烦 显然正方形一定以 ...
- NOIP2016Day2T3愤怒的小鸟(状压dp) O(2^n*n^2)再优化
看这范围都知道是状压吧... 题目大意就不说了嘿嘿嘿 网上流传的写法复杂度大都是O(2^n*n^2),这个复杂度虽然官方数据可以过,但是在洛谷上会TLE[百度搜出来前几个博客的代码交上去都TLE了], ...
- [学习笔记]min-max容斥
[Learning]min-max容斥以及推广 min-max容斥 就是max(a,b)=min(a)+min(b)-min(a,b) max(a,b,c)=a+b+c-min(a,b)-min(a, ...
- windows内存映射文件
http://shushanyegui.duapp.com/?p=731 在描述内存映射文件之前 我们先来写一个系统通过I/O来读写磁盘文件的小程序 #include "stdafx.h&q ...