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人负责服务器
  1. 注意责任归宿,要会通过测试证明自己没有问题
  2. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
  3. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式通过网络发送给服务器
  4. 服务器接收到后缀表达式,调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
  5. 客户端显示服务器发送过来的结果

问题与解决

  • 启动客户端代码出现报错:java.net.ConnectException: Connection refused: connect
    • 应该先运行服务器代码,否则运行客户端代码无法连接到服务器,出现报错。
  • IDEA无法正常打开,一运行程序直接闪退。
    • 未找到原因,重装也没有解决。

任务三

  • 加密结对编程:1人负责客户端,一人负责服务器
  1. 注意责任归宿,要会通过测试证明自己没有问题
  2. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
  3. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密后通过网络把密文发送给服务器
  4. 服务器接收到后缀表达式表达式后,进行解密(和客户端协商密钥,可以用数组保存),然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
  5. 客户端显示服务器发送过来的结果

任务四

  • 密钥分发结对编程:1人负责客户端,一人负责服务器
  1. 注意责任归宿,要会通过测试证明自己没有问题
  2. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
  3. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文发送给服务器
  4. 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
  5. 服务器接收到后缀表达式表达式后,进行解密,然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
  6. 客户端显示服务器发送过来的结果

任务五

  • 完整性校验结对编程:1人负责客户端,一人负责服务器
  1. 注意责任归宿,要会通过测试证明自己没有问题
  2. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
  3. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文和明文的MD5値发送给服务器
  4. 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
  5. 服务器接收到后缀表达式表达式后,进行解密,解密后计算明文的MD5值,和客户端传来的MD5进行比较,一致则调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端

任务六

Android 开发:客户端功能用Android实现

总结反思

之前linux下的IDEA使用稳定,更换到windows下后,不知道是感染病毒还是别的原因,windows下IDEA频繁崩溃。使用稳定的开发环境还是很有必要的。

posted @ 2017-06-04 09:47  0**  阅读(257)  评论(0编辑  收藏  举报