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.以下是代码及运行截图

1

2

4.将代码托管至码云

5

6
二、使用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

4
代码托管到码云

7

8

3. 实验过程中遇到的问题和解决过程

  • 问题1:运行大模型时显示客户端无法连接
  • 问题1解决方案:将程序中HOST从localhost改为本机IP地址

其他(感悟、思考等)

通过本次实验,掌握Socket编程技术,并通过Socket套接字(TCP/UDP)进行通信。

参考资料

socket技术

posted @ 2026-05-01 16:18  chen__c  阅读(5)  评论(0)    收藏  举报