20155212 实验五 《网络编程与安全》 实验报告
20155212 实验五 《网络编程与安全》 实验报告
任务一
- 两人一组结对编程:
结对实现中缀表达式转后缀表达式的功能 MyBC.java,结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java
问题与解决
- 转出来的后缀表达式正确,但是却报错:
Input exception reported
- 后来发现,MyDC每个字符间有空格,而我的后缀表达式之间没有空格。在输入的前缀表达式中加入空格结果也不对,因为无法做到正好两个字符间空格隔开。最后我在产生的后缀表达式字符串中的每个字符间加入空格。
StringBuilder newInfix = new StringBuilder(infix.replace(" ",""));
for (int i = 1; i < infix.length()+(i+1)/2 ; i=i+2) {
newInfix.insert(i," ");
}
System.out.println("Postfix is " + newInfix);
result = evaluator.evaluate(newInfix.toString());
任务二
- 结对编程:1人负责客户端,1人负责服务器
- 注意责任归宿,要会通过测试证明自己没有问题
- 基于Java Socket实现客户端/服务器功能,传输方式用TCP
- 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式通过网络发送给服务器
- 服务器接收到后缀表达式,调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
- 客户端显示服务器发送过来的结果
问题与解决
- 启动客户端代码出现报错:
java.net.ConnectException: Connection refused: connect
- 应该先运行服务器代码,否则运行客户端代码无法连接到服务器,出现报错。
- IDEA无法正常打开,一运行程序直接闪退。
- 未找到原因,重装也没有解决。
任务三
- 加密结对编程:1人负责客户端,一人负责服务器
- 注意责任归宿,要会通过测试证明自己没有问题
- 基于Java Socket实现客户端/服务器功能,传输方式用TCP
- 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密后通过网络把密文发送给服务器
- 服务器接收到后缀表达式表达式后,进行解密(和客户端协商密钥,可以用数组保存),然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
- 客户端显示服务器发送过来的结果
任务四
- 密钥分发结对编程:1人负责客户端,一人负责服务器
- 注意责任归宿,要会通过测试证明自己没有问题
- 基于Java Socket实现客户端/服务器功能,传输方式用TCP
- 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文发送给服务器
- 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
- 服务器接收到后缀表达式表达式后,进行解密,然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
- 客户端显示服务器发送过来的结果
任务五
- 完整性校验结对编程:1人负责客户端,一人负责服务器
- 注意责任归宿,要会通过测试证明自己没有问题
- 基于Java Socket实现客户端/服务器功能,传输方式用TCP
- 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文和明文的MD5値发送给服务器
- 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
- 服务器接收到后缀表达式表达式后,进行解密,解密后计算明文的MD5值,和客户端传来的MD5进行比较,一致则调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
任务六
Android 开发:客户端功能用Android实现
总结反思
之前linux下的IDEA使用稳定,更换到windows下后,不知道是感染病毒还是别的原因,windows下IDEA频繁崩溃。使用稳定的开发环境还是很有必要的。