学号 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程序设计》第10周总结的更多相关文章

  1. 20155335俞昆《Java程序设计》第五周总结

    #  20155335    <Java程序设计>第五周学习总结 ##  教材学习内容总结 ##  教材学习中的问题和解决过程 对于异常处理,程序中总有意想不到的状况所引发的的错误,Jav ...

  2. 20155335俞昆《java程序设计》第三周总结

    20155335  2006-2007-2  <Java程序设计>第三周学习总结 ##  教材学习内容总结 首先,关键是区基本类型和类类型,,产生对象必须定义类,类是一个概念,并不存在,对 ...

  3. 20155335 俞昆 2016-2017-2 《Java程序设计》第九周学习总结

    学号 2016-2017-2 <Java程序设计>第九周学习总结 ##JDBC入门 在正式介绍JDBC前,已知JDBC是用来执行SQL的解决方案,开发人员使用JDBC的标准接口,开发人员不 ...

  4. 2018面向对象程序设计(Java)第10周学习指导及要求

    2018面向对象程序设计(Java)第10周学习指导及要求(2018.11.1-2018.11.4)  学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接口的定 ...

  5. 面向对象程序设计(JAVA) 第10周学习指导及要求

    2019面向对象程序设计(Java)第10周学习指导及要求 (2019.11.1-2019.11.4)   学习目标 1.掌握java异常处理技术: 2.了解断言的用法: 3.了解日志的用途: 4.掌 ...

  6. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  7. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  8. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  9. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  10. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

随机推荐

  1. TCP系列34—窗口管理&流控—8、缓存自动调整

    一.概述 我们之前介绍过一种具有大的带宽时延乘积(band-delay product.BDP)的网络,这种网络称为长肥网络(LongFatNetwork,即LFN).我们想象一种简单的场景,假设发送 ...

  2. 使用Quartz.Net同时执行多个任务

    在Quartz.Net中可能我们需要在某一时刻执行多个任务操作,而又不想创建多个任务.Quartz.Net为我们提供了多个ScheduleJob的重载来实现多个一次执行多个任务. // 创建一个组任务 ...

  3. 腾讯云 activeMQ Illegal character in hostname at index 7

    查找问题步骤: 1.  /usr/local/apache-activemq-5.9.1/data/activemq.log 看一下这个.log后缀的启动日志,可以将它下载下来再看. 先尝试修改配置文 ...

  4. phpcms V9如何判断用户是否登录以及登陆后的标签写法问题

    首先要获取userid {php$userid=param::get_cookie('_userid');}​ 然后再判断是否为空 {if $userid}...这里写已经登录之后的代码...{els ...

  5. 第20天:京东nav、footer部分制作

    一.鼠标的4种状态 cursor:pointer; 鼠标变成小手cursor:default;小白cursor:move;移动cursor:text;文本输入 二.网页布局:1.input.butto ...

  6. 实用图像处理入门 - 1 - opencv VS2012 环境搭建

    标签中的部分 font-family: 华文细黑; font-size: 26px; font-weight: bold; color: #611427; margin-top:40px; } h2 ...

  7. BZOJ 1050 旅行(并查集)

    很好的一道题.. 首先把边权排序.然后枚举最小的边,再依次添加不小于该边的边,直到s和t联通.用并查集维护即可. # include <cstdio> # include <cstr ...

  8. BZOJ4820 SDOI2017硬币游戏(概率期望+高斯消元+kmp)

    容易想到的做法是建出AC自动机,高斯消元.然而自动机上节点数量是nm的. 注意到我们要求的变量只有n个,考虑将其他不用求的节点合并为一个变量.这个变量即表示随机生成一个串,其不包含任何一个模板串的概率 ...

  9. Andorid API Package ---> android.app

    包名: android.app                                     Added in API level 1       URL:http://developer. ...

  10. [洛谷P5048][Ynoi2019模拟赛]Yuno loves sqrt technology III

    题目大意:有$n(n\leqslant5\times10^5)$个数,$m(m\leqslant5\times10^5)$个询问,每个询问问区间$[l,r]$中众数的出现次数 题解:分块,设块大小为$ ...