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
WLAN寻找
在该网络属性界面:
IP更改
分别先后输入,再保存:
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记录:log
加密class:加密类
服务器:服务器1
服务器2
客户端:客户端

1.2AI代码可互动网站界面
1.1配置环境python3下载flack:
2.配置文件并上传代码上传代码:
scp -r "C:\Users\LENOVO\Desktop\云服务器12" root@(你的IP):/root/
3.配置云服务器的安全组:
1.3.1在更多找到安全组:image
1.3.2更改安全组:
进入跟改界面
1.3.3配置安全组规则:
进入Sys-WebServer
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:html部分
python: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:加密类
服务器:服务器1
服务器2
客户端:客户端

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/云服务器

参考资料

posted @ 2026-04-30 17:35  秦家昌  阅读(12)  评论(1)    收藏  举报