20252211 2025-2026-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2522
姓名: 陈鸿超
学号:20252211
实验教师:王志强
实验日期:2026年4月27日
必修/选修: 公选课
1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
2. 实验过程及结果
一、(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求发送方输入内容,加密后并传输;接收方收到密文并解密和显示。要求:发方和收方同时输出明文和明文。
(3)程序代码托管到码云。
1.与20242208韩岳航同学合作,我作为服务端,手动更改IP地址为192.168.43.11,端口为4444,韩岳航同学作为客户端
2.双方运行程序,使用GMSSL工具包中的SM4算法加密,成功连接,并互发信息,同时显示明文和密文
3.以下是代码及运行截图


4.将代码托管至码云


二、使用LLM生成一个带图形界面的程序
(1)分析关键代码的功能和使用方法
(2)分析生成程序的优点
(3)给出运行过程和结果截图
(4)程序代码托管到码云。
服务端:
def encrypt_sm4(self, plaintext):
"""SM4加密,返回密文"""
crypt_sm4 = CryptSM4(padding_mode=3)
crypt_sm4.set_key(self.key, SM4_ENCRYPT)
ciphertext = crypt_sm4.crypt_cbc(self.iv, plaintext.encode('utf-8'))
return ciphertext
def decrypt_sm4(self, ciphertext):
"""SM4解密,返回明文"""
crypt_sm4 = CryptSM4(padding_mode=3)
crypt_sm4.set_key(self.key, SM4_DECRYPT)
plaintext = crypt_sm4.crypt_cbc(self.iv, ciphertext)
return plaintext.decode('utf-8')
该段代码实现SM4算法加解密
客户端:核心代码与服务端一致,都为加解密部分
大模型生成代码优点:支持多个客户端同时在线处理(由于人员限制,未能在实验中实现);可以选择直接清除聊天记录;图形界面,操作友好
与20242208韩岳航同学合作,我作为服务端,IP地址为192.168.43.11,端口为8888,韩岳航同学作为客户端,运行代码


代码托管到码云


3. 实验过程中遇到的问题和解决过程
- 问题1:运行大模型时显示客户端无法连接
- 问题1解决方案:将程序中HOST从localhost改为本机IP地址
其他(感悟、思考等)
通过本次实验,掌握Socket编程技术,并通过Socket套接字(TCP/UDP)进行通信。

浙公网安备 33010602011771号