学号 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)

转载于:https://www.cnblogs.com/xieboke/p/6790655.html

20155335俞昆《java程序设计》第十周总结相关推荐

  1. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  2. 20155229 2016-2007-2 《Java程序设计》第一周学习总结

    20155229 2016-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 1~18章的提问: 第一章:怎样撰写Java才不会沦于死背API文件.使用"复制. ...

  3. 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结

    20155305 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与 ...

  4. 20155210潘滢昊 2016-2017-2《Java程序设计》第一周学习总结

    20155210 2016-2017-2<Java程序设计>第一周学习总结 教材学习内容总结 1.1.1: 本节主要讲了Java的由来,1995年5月23日是Java公认的诞生日.还有版本 ...

  5. 2017-2018-11 20155307刘浩 20155338常胜杰 20155335俞昆 实验三 实时系统实验报告

    2017-2018-11 20155307刘浩 20155338常胜杰 20155335俞昆 实验三 实时系统 实验目的 实验一: 学习使用Linux命令wc(1) 基于Linux Socket程序设 ...

  6. 20175317 《Java程序设计》第一周学习总结

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

  7. 20172318 2016-2017-2 《Java程序设计》第一周学习总结

    20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...

  8. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  9. 20175208 《Java程序设计》第九周学习总结

    20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...

  10. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

最新文章

  1. android系统的测试方法,运行测试  |  Android 开源项目  |  Android Open Source Project...
  2. LA2965侏罗纪(异或和为0的最大数字个数)
  3. 服务器高并发的解决方法
  4. 继承练习 :开发一个系统时 需要对员工进行建模 员工包含3个属性 姓名 工号 工资 功能 work
  5. Python自动化测试框架有哪些?
  6. 微服务架构下的熔断框架:hystrix-go
  7. Vue强制绑定class和style_使用字符串_对象_素组的方式实现强制绑定---vue工作笔记0007
  8. js动画 无缝轮播 进度条 文字页面展示 div弹窗遮罩效果
  9. linux pwm控制蜂鸣器 滴滴_linux pwm实现蜂鸣器
  10. 10月份语音合成任务安排: 商业化的普通话合成 (质量, 速度, 准确度, 韵律)
  11. su 和 sudo su 的区别
  12. java ssm羽毛球场地预约交流平台
  13. 二进制代码运算规律是逢二进一
  14. MSP430f2619学习—串口通信
  15. OI中组合数学公式和定理90%歼灭
  16. 计算机组成原理 - 计算机的硬件组成 (存储器 + CPU +I/O设备)
  17. OpenCV利用Haar Cascades进行人脸检测
  18. 工程中的Linux设备驱动
  19. LeetCode 1110.删点成林
  20. 华工计算机网络随堂练习答案,计算机电路基础·随堂练习2019春华南理工大学网络教育答案...

热门文章

  1. DISCUZ X3.0 积分增减以及记录
  2. BNU44583——Star Trek: First Contact——————【01背包】
  3. 介绍org.eclipse.core.runtime中工具类
  4. Excel VBA 重要参考(原始的VBA代码)
  5. Android CardView的基本使用
  6. Codewars-The wheat/rice and chessboard problem(棋盘放谷粒)
  7. jquery截取字符串中的数字
  8. 分析深圳电信的新型HTTP劫持方式
  9. 回忆Java基础中Map的遍历方法
  10. 第六章 文件I/O编程 [notice select() at RIL.pdf] [串口开发]