首页 > 其他 > 详细

20165334 实验五 网络编程与安全

时间:2018-05-27 23:25:47      阅读:250      评论:0      收藏:0      [点我收藏+]

20165334 实验五 网络编程与安全

任务1

  1. 结对实现中缀表达式转后缀表达式的功能 MyBC.java
  2. 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java
  3. 上传测试代码运行结果截图和码云链接

    1、中缀变后缀思路分析

  • 设置一个运算符栈,设置一个后缀表达式字符串;
  • 从左到右依次对中缀表达式中的每个字符x分别进行以下处理,直至表达式结束:

?? - 若x是左括号‘(’,将其入栈;

??- 若x是数字,将其后连续若干数字添加到后缀表达式字符串之后,并添加空格作为分隔符;

??- 若x是运算符,先将栈顶若干优先级高于ch的运算符出栈,添加到后缀表达式字符串之后,再将ch入栈。当‘(’运算符在栈中时,它的优先级最低。

??- 若x是‘)’,则若干运算符全部出栈,直到出栈的是左括号,一对括号匹配。

  • 若表达式结束,将栈中运算符全部出栈,添加到后缀表达式字符串之后。

    运行成功截图

技术分享图片

代码链接

任务二

结对编程:1人负责客户端,一人负责服务器

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

    编程思路

    一、搭建服务器端

a)、创建ServerSocket对象绑定监听端口。

b)、通过accept()方法监听客户端的请求。

c)、建立连接后,通过输入输出流读取客户端发送的请求信息。

d)、通过输出流向客户端发送请求信息。

e)、关闭相关资源。

二、搭建客户器端

a)、创建Socket对象,指明需要连接的服务器的地址和端口。

b)、建立连接后,通过输出流向服务器发送请求信息。

c)、通过输入流获取服务器的响应信息。

d)、关闭响应资源

运行截图

技术分享图片

代码链接

任务三

加密结对编程: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. 客户端显示服务器发送过来的结果

    运行截图

技术分享图片

任务五

网络编程与安全-5

完整性校验结对编程:1人负责客户端,一人负责服务器

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

技术分享图片

服务器截图

技术分享图片

试验中遇到的问题

一定要先运行服务器后运行客户端
错误:java.net.SocketException: Connection reset

这个问题让我差点吐血,百度上说大多数是防火墙的问题,我关闭防火墙后依旧出现错误,最后换了个id和端口号后运行成功。

20165334 实验五 网络编程与安全

原文:https://www.cnblogs.com/ltl123/p/9097876.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!