20192305 2020-2021《数据结构与面向对象程序设计》实验四报告
20192305 2020-2021-1 《数据结构与面向对象程序设计》实验四报告
课程:《程序设计与数据结构》
班级: 1923
姓名: 王梓全
学号:20192305
实验教师:王志强
实验日期:2020年10月22日
必修/选修: 必修
1.实验内容
- (1)Java Socket编程
1.学习蓝墨云上教材《Java和Android编程》“第16章 输入/输出 ”和“第22章 网络”,学习JavaSocket编程
2.结对编程。结对伙伴A编写客户端SocketClient.java,结对伙伴B编写服务器端。 - (2)Java和密码学
- (3)结对编程,结对伙伴A编写有理数计算器。结对伙伴B编写复数计算器。
- (4)结对编程,结对伙伴A编程实现客户端,结果伙伴B实现服务器端。
客户端通过键盘输入一个有理数计算的公式(例如:1/4 + 1/6 = ),并把该公式以字符串的形式发送给伙伴B(服务器端),服务器端根据字符串计算出结果为5/12,并把结果返回给客户端A,A收到结果后输出结果; - (5)结对编程,结对伙伴B编程实现客户端,结果伙伴A实现服务器端。
客户端通过键盘输入一个复数计算的公式,并把该公式以字符串的形式发送给伙伴A(服务器端),服务器端根据字符串计算出结果,并把结果返回给客户端B,B收到结果后输出结果。
2. 实验过程及结果
Java Socket编程
1.学习蓝墨云上教材《Java和Android编程》“第16章 输入/输出 ”和“第22章 网络”,学习JavaSocket编程
2.结对编程。结对伙伴A编写客户端SocketClient.java,结对伙伴B编写服务器端。
(2)Java和密码学
凯撒密码:
DES算法:
RSA算法:
MD5
(3)结对编程,结对伙伴A编写有理数计算器。结对伙伴B编写复数计算器。
(4)远程有理数计算器
结对编程,结对伙伴A编程实现客户端,结果伙伴B实现服务器端。客户端通过键盘输入一个有理数计算的公式(例如:1/4 + 1/6 = ),并把该公式以字符串的形式发送给伙伴B(服务器端),服务器端根据字符串计算出结果为5/12,并把结果返回给客户端A,A收到结果后输出结果;
(5)远程复数计算器:
结对编程,结对伙伴B编程实现客户端,结果伙伴A实现服务器端。客户端通过键盘输入一个有理数计算的公式(例如:1/4 + 1/6 = ),并把该公式以字符串的形式发送给伙伴A(服务器端),服务器端根据字符串计算出结果为5/12,并把结果返回给客户端B,B收到结果后输出结果。
3. 实验过程中遇到的问题和解决过程
- 问题1:与结队伙伴连接超时错误
- 问题1解决方案:将电脑连接至同意网络之下,并同时记录相应ip地址,进行连接
- 问题2:在服务器与客户端传输结果中显示为乱码
- 问题2解决方法:将程序中与下面的UTF-8均改变为GBK,就可以实现程序已中文形式输出
其他(感悟、思考等)
这次实验很复杂,且具有难度,在实践的过程中遇到了很多困难,需要查较多的资料,跟需要细心,要针对不同情况对自己的代码进行修改