20172319 实验五 《网络编程与安全》实验报告

20172319 2018.06.13-20

实验五《网络编程与安全》 实验报告

课程名称:《程序设计与数据结构》  
学生班级:1723班  
学生姓名:唐才铭  
学生学号:20172319 
实验教师:王志强老师
课程助教:刘伟康、张旭升学长
实验时间:2018年6月13日——2018年6月20日
必修/选修:必修

目录


实验内容

  1. 参考数据结构应用
    结对实现中缀表达式转后缀表达式的功能 MyBC.java
    结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java
    上传测试代码运行结果截图和码云链接;
  2. 结对编程:1人负责客户端,一人负责服务器
    注意责任归宿,要会通过测试证明自己没有问题
    基于Java Socket实现客户端/服务器功能,传输方式用TCP
    客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式通过网络发送给服务器
    服务器接收到后缀表达式,调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
    客户端显示服务器发送过来的结果
    上传测试代码运行结果截图和码云链接;
  3. 加密结对编程:1人负责客户端,一人负责服务器
    注意责任归宿,要会通过测试证明自己没有问题
    基于Java Socket实现客户端/服务器功能,传输方式用TCP
    客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密后通过网络把密文发送给服务器
    服务器接收到后缀表达式表达式后,进行解密(和客户端协商密钥,可以用数组保存),然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
    客户端显示服务器发送过来的结果
    上传测试结果截图和码云链接;
  4. 密钥分发结对编程:1人负责客户端,一人负责服务器
    注意责任归宿,要会通过测试证明自己没有问题
    基于Java Socket实现客户端/服务器功能,传输方式用TCP
    客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文发送给服务器
    客户端和服务器用DH算法进行3DES或AES算法的密钥交换
    服务器接收到后缀表达式表达式后,进行解密,然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
    客户端显示服务器发送过来的结果
    上传测试结果截图和码云链接;
  5. 完整性校验结对编程:1人负责客户端,一人负责服务器
    注意责任归宿,要会通过测试证明自己没有问题
    基于Java Socket实现客户端/服务器功能,传输方式用TCP
    客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文和明文的MD5値发送给服务器
    客户端和服务器用DH算法进行3DES或AES算法的密钥交换
    服务器接收到后缀表达式表达式后,进行解密,解密后计算明文的MD5值,和客户端传来的MD5进行比较,一致则调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
    客户端显示服务器发送过来的结果
    上传测试结果截图和码云链接:

返回目录


实验要求

  1. 完成蓝墨云上与实验五《网络编程与安全》相关的活动,及时提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分。
  2. 完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导
  3. 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。
  4. 结对编程;也可自己在idea和虚拟机间进行传输;idea本身也可以进行服务器与客户端的传输。

返回目录


实验步骤

  1. 完成蓝墨云上实验五 网络编程与安全-1
  2. 完成蓝墨云上实验五 网络编程与安全-2
  3. 完成蓝墨云上实验五 网络编程与安全-3
  4. 完成蓝墨云上实验五 网络编程与安全-4
  5. 完成蓝墨云上实验五 网络编程与安全-5

前期准备:

  1. 预先下载安装好Android Studio ,参考AndroidStudio安装配置教程

需求分析:

  1. 需要大致认识、了解项目中各个目录下的文件有什么作用;
  2. 需要了解、掌握如何对相关文件的修改才能真正使编写好的项目实现其预设功能;
  3. 需要认识、了解Android的概念和编程方式;
  4. 需要具备自主学习的能力,不懂时可以向Stack Overflow或Android Subreddit社区求助。

返回目录


代码实现及解释

本次实验一共分为五个提交点:

  • 1.Android Stuidio的安装测试:
  • 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章;
  • 在布局文件中extView中对文本Text进行修改即可:
  • 运行结果如下:

  • 2.Activity测试:
  • 在新建Activity时,最好别直接在java目录下右键新建类,到时候还得去AndroidManifest.xml 以及layout目录下对相关文件所需要的信息及文件进行补充,极其不便,较为简便的方法如下:
  • 活动建好后,相应的信息及文件会在AndroidManifest.xml 以及layout目录自动生成,非常方便。
  • 参考课本的例子对MainActivity、以及其与ThirdActivity的布局文件编写的内容如下:


  • 运行结果如下:

  • 3.UI测试:

  • MainActivity 内容如下:

  • 布局文件内容如下:

  • 运行结果:

  • 4.布局测试:
  • 由于design视图,使得其很方便,只需将想改动的按钮拖至预想位置即可,这里我们改动的按钮是Save,

  • 改动前:

  • 改动后:

  • 5.事件处理测试:
  • 运行课本例子即可:

返回目录


测试过程及遇到的问题

  • 问题1:Git至码云
  • 解决:起初,在网络上找了个教程(张昊然同学也发过,但没注意看......),按着教程走,结果:


    然后针对他们疯狂地找解决方法例如:git pull origin master --allow-unrelated-histories
    但依旧无效,这鬼东西整了我一个星期,最后,张昊然同学说可能是创建的项目的原因,然后删了项目重建,

    语言依旧是Android,其他两个无所谓,但别勾选使用remade初始化项目,最终得到了:

  • 问题2:删除APP
  • 解决:如果我的APP被我整得Android studio都认不出来了(n!的问题,多到无法一一解决),我想删掉怎么办?
  • 然而它并不能简单地通过右键删除:

    通过了解知道:这是一种对于APP的保护机制,要想删除,只能通过:


    然而,这仅仅是删除在Android studio上的,要想彻底删除,还需去相应文件存储的硬盘里删掉相应文件。

返回目录


分析总结

  • 这是一个全新的内容,与我们原来所学的相关,且更深一层并更接近了我们的生活,虽然项目的开发过程的某些代码的含义还不能完全明白,但在以后的过程中会逐一认识、了解并掌握。

返回目录


参考资料

Intellj IDEA 简易教程
Android开发简易教程
Android studio项目上传至oschina(码云)教程

返回目录

猜你喜欢

转载自www.cnblogs.com/Tangcaiming/p/9200848.html