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就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

参考资料

最新文章

  1. Distributed MVCC based cross-row transaction
  2. CodeFirst时使用T4模板(你肯定没用过的笨方法,还望园友指教)
  3. JS checkbox 全选 全不选
  4. Autodesk 产品开发培训开始报名-8月26~28-武汉– Revit, Vault, Autodesk Viewer, Navisworks
  5. 二分图最大权最小权完美匹配模板KM
  6. Android中查找一个Layout中指定的子控件
  7. Effective Java之最佳建议
  8. sqlite相关工具使用
  9. oracle dump event
  10. java 控制器向页面传值方式
  11. 翻译「C++ Rvalue References Explained」C++右值引用详解 Part4:强制Move语义
  12. android 开发 system/app目录下面有多个重复包名的apk,会不会冲突
  13. 【转】Eclipse快捷键 10个最有用的快捷键----不错
  14. 解析AFNetWorking 网络框架(二)
  15. 多线程程序设计学习(8)Thread-Per-Message
  16. There is no Action mapped for namespace [/] and action name [user] associated with context path
  17. 不支持的关键字:“provider connection string”报错信息及解决方案
  18. Mvc学习笔记(3)
  19. Unity3D相机震动效果
  20. docker exec 系统找不到指定的路径。

热门文章

  1. August 17th 2017 Week 33rd Thursday
  2. OC文件操作2
  3. 串口编程 System.IO.Ports.SerialPort类
  4. MVC 入门-MvcMovie
  5. Android 6.0动态权限申请教程
  6. 使用Java语言开发机器学习框架和参数服务器
  7. 粒子群优化算法PSO及matlab实现
  8. Mac Sublime Text3快捷键
  9. HDU - 5547 数独(回溯法)
  10. Kali-linux查看打开的端口