当前位置: 首页 > news >正文

20254217 实验三《Python程序设计》实验报告

20254217 实验三《Python程序设计》实验报告

20254217 2025-2026-2 《Python程序设计》实验3报告

课程:《Python程序设计》
班级: 2542
姓名: 刘镇源
学号:20254217
搭档姓名:王禹豪
搭档学号:20254104
实验教师:王志强老师
实验日期:2026年4月28日
必修/选修: 专选课

实验内容

实验内容

创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。

实验要求

注意事项:
每人必须做一次客户端和一次服务端,且要和队友(标注学号姓名)互相通信。

要求1:

(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求发送方输入内容,并传输;接收方收到信息并显示。

要求2:使用LLM生成一个带图形界面的程序

(1)分析关键代码的功能和使用方法
(2)分析生成程序的优点
(3)给出运行过程和结果截图
注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现。

实验过程及结果

创建服务端和客户端

(1)服务端
手写服务端代码
(2)客户端
手写客户端代码

搭档之间相互通信

客户端要想与服务端通信,必须连接服务端网络。我首先作为服务端,打开热点让双方连接。连接前为标记学号信息,将地址改为手动分配,末端地址改为自己的学号。
我为服务端,王禹豪为客户端的通信结果如下图:
1
然后两人交换角色,我改为连接王禹豪的热点,修改末端地址为自己的学号,然后连接他打开后的服务端。交换角色后的通信结果如下图:
2

使用LLM生成一个带图形界面的程序

生成程序

我们两个人各生成了一套程序,但是为尝试用LLM生成的程序进行通信,我们最终统一使用了同一套程序。(以代码块为单位,关键代码块在程序中以注释形式标注)
①我用文心一言生成的程序如下:
AI1

  • 服务端:
    AI2
  • 客户端:
    AI3
    ②最终用于双边通信的程序代码及通信结果:
  • 服务端:
    AI4
  • 客户端:
    AI5
    作为服务端的通信结果:
    5
    作为客户端的通信结果:
    6

对生成程序的分析

1.生成程序具有完整的交互界面,不需要回到源文件中以修改代码的形式对端口号和地址进行修改,在前端交互界面按照引导修改即可
2.生成程序能实时反馈通信状态,可以根据问题类型直接采取针对性解决方案而不用遍历排查各种问题类型,极大提高程序维护效率
3.LLM生成的程序在健壮性上仍明显强于手写程序,我尝试过用IDLE运行手写程序,出错即闪退,既影响用户体验,又不便排查错误
4.与此同时交互界面需要耗费内存,对编程环境搭建完善者而言这一部分必要性并不大

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

  • 问题1:一开始所有人使用同一端口号时会连接失败
  • 问题1解决方案:约定好新端口号并用其进行连接
  • 问题2:客户端连接服务端时会出现请求超时的情况
  • 问题2解决方案:两台设备先准备好,服务端一打开客户端即发送连接请求
  • 问题3:通信过程中出现了网络不稳定的情况
  • 问题3解决方案:改变无线网络的自动连接设置
  • 问题4:手动分配IP地址无法访问互联网
  • 问题4解决方案:在访问互联网时改回自动分配地址

其他(感悟、思考等)

通过这次实验,我对用Python Socket通信技术原理和操作方式有了较为全面的了解,也在编写程序、排查修复问题中感到成就感和实验的意义。

参考资料

《Python完全自学教程》-明日科技