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