20192304 实验四 《数据结构和面向对象的程序设计》 实验报告
20192304 2020-2021-1 《数据结构与面向对象程序设计》实验四报告
课程:《程序设计与数据结构》
班级: 1923
姓名: 刘润衡
学号:20192304
实验教师:王志强
实验日期:2020年10月22日
必修/选修: 必修
1.实验内容
(1)Java Socket编程(2分)
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. 实验过程及结果
(1)Java Socket编程(2分)
1.学习蓝墨云上教材《Java和Android编程》“第16章 输入/输出 ”和“第22章 网络”,学习JavaSocket编程
2.结对编程。结对伙伴A编写客户端SocketClient.java,结对伙伴B编写服务器端。
(2)Java和密码学
https://gitee.com/besti1923/lrh20192304_JAVAProgramrr/commit/073aaf07a507ab0b14368aad8a670adeded3cd8d
(3)结对编程,结对伙伴A编写有理数计算器。结对伙伴B编写复数计算器。
https://gitee.com/besti1923/lrh20192304_JAVAProgramrr/blob/master/src/first.java
(4)结对编程,结对伙伴A编程实现客户端,结果伙伴B实现服务器端。
客户端通过键盘输入一个有理数计算的公式(例如:1/4 + 1/6 = ),并把该公式以字符串的形式发送给伙伴B(服务器端),服务器端根据字符串计算出结果为5/12,并把结果返回给客户端A,A收到结果后输出结果;
https://gitee.com/besti1923/lrh20192304_JAVAProgramrr/commit/e7191084b8ffe71d77940aa2ec9ea5647636be0c
(5)结对编程,结对伙伴B编程实现客户端,结果伙伴A实现服务器端。
客户端通过键盘输入一个有理数计算的公式(例如:1/4 + 1/6 = ),并把该公式以字符串的形式发送给伙伴A(服务器端),服务器端根据字符串计算出结果为5/12,并把结果返回给客户端B,B收到结果后输出结果。
https://gitee.com/besti1923/lrh20192304_JAVAProgramrr/commit/1390630562660ac04b96efce6c1b072eab2b17e9
3. 实验过程中遇到的问题和解决过程
- 问题1:Java与密码学操作时出现 【未知文件】 错误
- 问题1解决方案:经检查为未建立相关代码文件导致,添加文件即可
- 问题2:与结队伙伴连接超时错误
- 问题2解决方案:将电脑连接至同意网络之下,并同时记录相应ip地址,进行连接
- 问题三:编写字符串形式的复数计算器时无法准确分离出数字
- 问题三解决方案:将字符串输入格式标准化后通过控制字节位数来读取并转化为数字
- 问题四:无法成功接收结队伙伴的请求与指令
- 问题四解决方案:进行相关域名调整以及对程序中代码设置及时反馈机制进行监控
其他(感悟、思考等)
密码学相关加密解密通过密钥设定可实现二者之间的加密传输。
对于相关知识不仅要知道它怎么用,更要知道为什么这样做可以使用。
对于二者之间远程连接,相关操作需要小心谨慎且细致,对于连接要准确输入对方地址,精准锁定。
进行远程连接时,需要在程序运行过程之中添加相应及时的反馈标志,使得使用者可以准确定位当前程序运行位置。