20165309 实验五 网络编程与安全

2017-2018-2 20165309实验五《Java面向对象程序设计》实验报告

1、实验原理

1.栈的应用

  • 后缀式的运算规则为:运算符在式中出现的顺序恰为表达式的运算顺序;每一个运算符和在它以前出现且紧靠它的两个操做数构成一个最小表达式。
  • 由中缀式求得后缀式可使用栈,伪代码以下:
    • 设立一个栈,存放运算符,首先栈为空;
    • 从左到右扫描中缀式,若遇到操做数,直接输出,并输出一个空格做为两个操做数的分隔符;
    • 若遇到运算符,则与栈顶比较,比栈顶级别高则进栈,不然退出栈顶元素并输出,而后输出一个空格做分隔符;
    • 若遇到左括号,进栈;若遇到右括号,则一直退栈输出,直到退到左括号止。
    • 当栈变成空时,输出的结果即为后缀表达式。
  • Linux下dc的运算符:
    • +: 依次弹出w1与w2,将w2+w1压栈。精度为结果值精度
    • -: 依次弹出w1与w2,将w2-w1压栈
    • *: 依次弹出w1与w2,将w2*w1压栈。精度为结果值精度与precision中较大值
    • /: 依次弹出w1与w2,将w2/w1压栈。精度为precision

2.套接字

  • 网络套接字是基于TCP协议的有链接通讯。
  • 套接字链接就是客户端的套接字对象和服务器端的套接字对象经过输入流、输出流链接在一块儿。
  • 服务器创建ServerSocket对象,ServerSocket对象负责等待客户端请求创建套接字链接,而客户端创建Socket对象向服务器发出套接字链接请求。
  • 要建立一个套接字,可使用Socket的构造方法,如:public Socket(java.lang.String host, int port)。其中,host是远程机器名或IP地址,port是远程应用程序的端口号。

3.Java 密码学算法

2、实验内容

1.网络编程与安全-1

结对实现中缀表达式转后缀表达式的功能 MyBC.javahtml

结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.javajava

  • 测试代码运行结果以下

2.网络编程与安全-2

基于Java Socket实现客户端/服务器功能,传输方式用TCPgit

客户端让用户输入中缀表达式,而后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式经过网络发送给服务器算法

服务器接收到后缀表达式,调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端编程

客户端显示服务器发送过来的结果数组

  • 客户端
  • 服务器

3.网络编程与安全-3

基于Java Socket实现客户端/服务器功能,传输方式用TCP安全

客户端让用户输入中缀表达式,而后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密后经过网络把密文发送给服务器服务器

服务器接收到后缀表达式表达式后,进行解密(和客户端协商密钥,能够用数组保存),而后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端网络

客户端显示服务器发送过来的结果测试

  • 客户端
  • 服务器

4.网络编程与安全-4

基于Java Socket实现客户端/服务器功能,传输方式用TCP

客户端让用户输入中缀表达式,而后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密经过网络把密文发送给服务器

客户端和服务器用DH算法进行3DES或AES算法的密钥交换

服务器接收到后缀表达式表达式后,进行解密,而后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端

客户端显示服务器发送过来的结果

  • 客户端
  • 服务器

5.网络编程与安全-5

基于Java Socket实现客户端/服务器功能,传输方式用TCP

客户端让用户输入中缀表达式,而后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密经过网络把密文和明文的MD5値发送给服务器

客户端和服务器用DH算法进行3DES或AES算法的密钥交换

服务器接收到后缀表达式表达式后,进行解密,解密后计算明文的MD5值,和客户端传来的MD5进行比较,一致则调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端

客户端显示服务器发送过来的结果

  • 客户端
  • 服务器

代码连接

3、实验中遇到的问题及解决

  • 问题:报错以下
  • 解决:换个别的端口号。

4、实验收获

我在本次结对实验中负责的部分是服务器,整个实验的过程对我来讲极为艰难,不得不在借鉴了不少学长学姐的博客和依赖大量的百度下得以完成,拖慢告终对伙伴的进度...总而言之,好好看书,十三章很重要。

步骤 耗时 百分比
需求分析 20min 7.4
设计 60min 22.2
代码实现 120min 44.4
测试 40min 14.9
分析总结 30min 11.1
相关文章
相关标签/搜索