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程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
随机推荐
- javabean的内省技术和BeanUtils的使用
一.关于javabean javabean是固定写法的java类 书写格式为: 1)必须有无参构造函数 2)属性必须私有, 我们称为字段 3)提供标准的getter和setter 例: name 字段 ...
- Java中的线程同步
Java 中的线程同步问题: 1. 线程同步: 对于访问同一份资源的多个线程之间, 来进行协调的这个东西. 2. 同步方法: 当某个对象调用了同步方法时, 该对象上的其它同步方法必须等待该同步方法执行 ...
- SQL SERVER技术内幕之4 子查询
最外层查询的结果集会返回给调用者,称为外部查询.内部查询的结果是供外部查询使用的,也称为子查询.子查询可以分成独立子查询和相关子查询两类.独立子查询不依赖于它所属的外部查询,而相关子查询则须依赖它所属 ...
- ASP.NET MVC4计划任务实现方法(定时执行某个功能)
系统中定时执行某个任务是比较常用的功能,如一个部门定期向上级部门上报数据是一个典型的例子,下面就简单说说在.net mvc中如何实现定时执行某个功能的方法. 1.首先修改Glocal.asax文件,在 ...
- connectedSignal 简单使用
import java.util.concurrent.CountDownLatch; public class CountDown { private static CountDownLatch c ...
- fzu1686-神龙的难题
给出一个n\times m的01矩阵,以及\(h,w\),表示一次可以把矩阵的一个\(h\times w\)的小矩阵变为全0,问至少要多少次可以把整个矩阵变为全0.\(n,m\le 15\). 分析 ...
- bzoj3992-序列统计
给出\(n,m,x,S\),其中\(S\subseteq [0,m)\),问有多少个长度为\(n\)的数列\(a\)使得\(a_i\in S\),并且数列中所有元素的乘积mod \(m\)为\(x\) ...
- BZOJ3238:[AHOI2013]差异——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=3238 https://www.luogu.org/problemnew/show/P4248 参考 ...
- HDU3949:XOR——题解
http://acm.hdu.edu.cn/showproblem.php?pid=3949 求n个数的异或和第k小. 参考:https://blog.sengxian.com/algorithms/ ...
- 洛谷 P2617 Dynamic Rankings 解题报告
P2617 Dynamic Rankings 题目描述 给定一个含有\(n\)个数的序列\(a[1],a[2],a[3],\dots,a[n]\),程序必须回答这样的询问:对于给定的\(i,j,k\) ...