20251222秦家昌 实验三《Python程序设计》实验报告
实验报告模板如下:
学号 2025-2026-2 《Python程序设计》实验x报告
课程:《Python程序设计》
班级: 2012
姓名: 秦家昌(与20251216杜立合作完成)
学号:20251222
实验教师:王志强
实验日期:2026年4月28日
必修/选修: 公选课
1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
2. 实验过程及结果
1.1手写代码
1.1.1 成果表现形式
成功在特定尾号的HOST,连接同一wifi下,完成与同学的加密信息传输。其中涉及文件操作包括读取和写入:
1.加密数字读取;
2.客户端与服务器的聊天记录会被记录在服务器端。
1.1.2 实验过程
阶段一:实现手机和电脑的连接定向(手机的文件设置较为麻烦,故加密环节由与同学共同完成)
1.更改IP.
在终端输入:ipconfig,找到WLAN

在该网络属性界面:

分别先后输入,再保存:
IP 地址(IPv4 Address):192.168.43.(取相应值)
子网掩码(Subnet Hask):255.255.255.0
网端(Default Gateway):192.168.43.1
首选 DNS:8.8.8.8
2.发送消息
手机开启热点,电脑连接,并按上述方式更改IP.
电脑运行服务器,手机运行客户端。
运行结果:
服务器:

客户端:


阶段二:定义加密类
1.RSA加密原理
c=(m^e)mod n
m=(c^d)mod n
(其中,n=pq,e为公钥,d为私钥且1=(de) mod(p-1)(q-1);c为密文;m为明文)
加密效果:


阶段三:实现与同学的加密信息交换(注:文件操作添加了log.txt,会在服务器端记录与客户端的聊天记录,客户端不会记录)
服务器:

客户端:

7.gitee提交:
log记录:
加密class:
服务器:

客户端:
1.2AI代码可互动网站界面
1.1配置环境python3下载flack:
2.配置文件并上传代码上传代码:
scp -r "C:\Users\LENOVO\Desktop\云服务器12" root@(你的IP):/root/
3.配置云服务器的安全组:
1.3.1在更多找到安全组:
1.3.2更改安全组:

1.3.3配置安全组规则:

1.3.4点击Sys-WebSever:

1.3.5点击入方向规则添加规则:

1.3.6选择常用协议端口8080,IP 0.0.0.0/0,优先级1,描述任意点击确认
4.登录云服务器:
ssh root@(你的IP)
5.运行文件:
cd 云服务器12:
python3 web_main.py
结果:
服务器返回

手机登录试用


6.gitee托管:
html:
python:
7.优点:
1.2.1:返回输入值
user_input = request.form.get('msg')
1.2.2:有判断
使用if name == 'main':判断:是不是当前文件
1.2.3:用render_template,利用html渲染网站,实现可互动界面
def index():
return render_template("gui_index.html")
1.2.4:有服务器端的提示
print("=")
print("📥 来自网页的用户输入:", user_input)
print("✅ 服务器已处理完成,返回结果给网页")
print("=")
1.开启云服务器,调节各项参数:
1.2.1.1产品->弹性云服务器->购买


1.2.1.2
区域:北京四
实例:经济型 1vCPUs/1GiB

1.2.1.3
操作系统:Ubuntu Ubuntu 22.04 server 64bit(10GiB)
宽带大小选1

购买用卷
1.2.1.4修改安全组,按AI的那种就行,然后设置密码,在更多里面有

1.2.1.5登录,下载python3可能很慢
sudo apt update -y
sudo apt upgrade -y
sudo apt install python3 -y
1.2.1.6上传文件(在终端运行)
scp -r 地址 root@IP:/root/(IP在服务器那里就是那个IP地址弹性公网IP)
1.2.1.7运行文件
服务器启动
服务器端

客户端

9.gitee提交:
质数:
加密class:
服务器:

客户端:
3. 实验过程中遇到的问题和解决过程
- 问题1:加密过程中加密方法忘了
- 问题1解决方案:复习以前写的文件内容
- 问题2:加密后解密文件,因为m.to_bites添加的太多无意义字符,导致log异常
- 问题2解决方案:使用replace()函数,删去NULL部分
- 问题3:不理解云服务器运行方式
- 问题3解决方案:向AI学习操作模式,包括组更改,服务器申请改如何节约成本,如何上传文件等
- 问题4:发现AI写的网站手机无法登录
- 问题4解决方案:是安全组未开放,新增入向量
- 问题5:AI写的代码,服务器端没有返回,不知道是否真实收到
- 问题5解决方案:让AI新加服务器端输出
- 问题6:不会网络IP配置,老是一改就没信号
- 问题6解决方案:通过不断尝试(就是一觉醒来,突然想到不同wifi的192.168.?.***,的?可能不一样,要一样的才能连上)
- 问题7:网络老是出问题,安全度太高,无法传输
- 问题7解决方案:退出管家,防火墙,同时设为专用模式,不退出
其他(感悟、思考等)
了解到了如何更改IP,查看自身IP;
了解云服务器的基本使用(包括,文件上传,下载,查阅使用;服务器购买;安全组设置等)
了解到AI的能力也是有限的,复杂问题需要和同学,老师探讨;
代码地址
socket真人版:https://gitee.com/Qq_qjc/qjc_qjc/tree/master/6_第六节课
云服务器AI版:https://gitee.com/Qq_qjc/qjc_qjc/tree/master/云服务器12
云服务器真人版:https://gitee.com/Qq_qjc/qjc_qjc/tree/master/云服务器
参考资料
-
实验中的加密用RSA大质数来源于CTF赛事里面题目直接引用
-
...

浙公网安备 33010602011771号