20155222 2016-2017-2 《Java程序设计》第10周学习总结
教材学习内容总结
简单JAVA socket
* 1 搭建服务器端 * 1 创建ServerSocket对象绑定监听端口。 * 2 通过accept()方法监听客户端的请求。 * 3 建立连接后,通过输入输出流读取客户端发送的请求信息。 * 4 通过输出流向客户端发送请求信息。 * 5 关闭相关资源。 * 2 搭建客户器端 * 1 创建Socket对象,指明需要连接的服务器的地址和端口。 * 2 建立连接后,通过输出流向服务器发送请求信息。 * 3 通过输入流获取服务器的响应信息。 * 4 关闭响应资源
Java与密码学
Java安全体系结构总共分为4个部分:- 1 JCA( Java Cryptography Architecture, Java加密体系结构):JCA提供基本的加密框架, 如证书、 数字签名、消息摘要和密钥对产生器。
- 2 JCE( Java Cryptography Extension, Java加密扩展包):JCE在JCA的基础上作了扩展, 提供了各种加密算法、 消息摘要算法和密钥管理等功能。JCE的实现主要在javax.crypto包( 及其子包) 中
- 3 JSSE( Java Secure Sockets Extension, Java安全套接字扩展包):JSSE提供了基于SSL( Secure Sockets Layer,安全套接字层) 的加密功能。 在网络的传输过程中, 信息会经过多个主机(很有可能其中一台就被窃听) , 最终传送给接收者, 这是不安全的。这种确保网络通信安全的服务就是由JSSE来提供的。
4 JAAS( Java Authentication and Authentication Service, Java鉴别与安全服务):JAAS提供了在Java平台上进行用户身份鉴别的功
教材学习中的问题和解决过程
编写密码学程序使用java有什么好处?
java有众多API,使用方便。
代码调试中的问题和解决过程
- java socket如何搭建服务器?
package socket;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class SocketService { //搭建服务器端 public static void main(String[] args) throws IOException{ SocketService socketService = new SocketService(); //1、a)创建一个服务器端Socket,即SocketService socketService.oneServer(); } public void oneServer(){ try{ ServerSocket server=null; try{ server=new ServerSocket(5209); //b)指定绑定的端口,并监听此端口。 System.out.println("服务器启动成功"); //创建一个ServerSocket在端口5209监听客户请求 }catch(Exception e) { System.out.println("没有启动监听:"+e); //出错,打印出错信息 } Socket socket=null; try{ socket=server.accept(); //2、调用accept()方法开始监听,等待客户端的连接 //使用accept()阻塞等待客户请求,有客户 //请求到来则产生一个Socket对象,并继续执行 }catch(Exception e) { System.out.println("Error."+e); //出错,打印出错信息 } //3、获取输入流,并读取客户端信息 String line; BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream())); //由Socket对象得到输入流,并构造相应的BufferedReader对象 PrintWriter writer=new PrintWriter(socket.getOutputStream()); //由Socket对象得到输出流,并构造PrintWriter对象 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //由系统标准输入设备构造BufferedReader对象 System.out.println("Client:"+in.readLine()); //在标准输出上打印从客户端读入的字符串 line=br.readLine(); //从标准输入读入一字符串 //4、获取输出流,响应客户端的请求 while(!line.equals("end")){ //如果该字符串为 "bye",则停止循环 writer.println(line); //向客户端输出该字符串 writer.flush(); //刷新输出流,使Client马上收到该字符串 System.out.println("Server:"+line); //在系统标准输出上打印读入的字符串 System.out.println("Client:"+in.readLine()); //从Client读入一字符串,并打印到标准输出上 line=br.readLine(); //从系统标准输入读入一字符串 } //继续循环 //5、关闭资源 writer.close(); //关闭Socket输出流 in.close(); //关闭Socket输入流 socket.close(); //关闭Socket server.close(); //关闭ServerSocket }catch(Exception e) {//出错,打印出错信息 System.out.println("Error."+e); } }}
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 9/9 | 3/6 | 10/10 | |
第二周 | 40/49 | 1/7 | 5/15 | |
第三周 | 49/99 | 1/8 | 10/25 | |
第四周 | 202/301 | 1/9 | 15/40 | |
第五周 | 170/471 | 1/10 | 5/45 | |
第六周 | 115/520 | 1/11 | 5/50 | |
第七周 | 18/538 | 1/13 | 5/55 | |
第八周 | 28/545 | 1/14 | 5/60 | |
第九周 | 323/867 | 2/16 | 15/75 | |
第十周 | 45/912 | 1/17 | 5/80 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。参考:,
计划学习时间:20小时
实际学习时间:5小时
改进情况:
有空多看看
参考资料
...