20244107 实验三《Python程序设计》实验报告
20244107 2024-2025-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2441
姓名: 唐近仁
学号:20244107
实验教师:王志强
实验日期:2025年4月15日
必修/选修: 专选课
1.实验内容
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
2. 实验过程及结果
(1)学习socket编程的必要知识,学习工作原理和两个端口的不同编写逻辑,获得编写程序的初步构思;
(2)一开始与王老师配合,我作为客户端,编写程序:先导入模块,然后创建套接字,接着通过connect连接服务端,然后制作一个消息交互的循环,我可以自主选择是否继续进行对话,最后用close关闭连接。当然运行前我查询了老师的IP地址并输入。最重要的是运行的时候要和老师连一样的wifi。以下是具体程序:
以下是和李其鲔同学的运行结果:
(3)紧接着,我又与20244112李其鲔同学进行配合,互相作为服务端和客户端。由于我已经和老师配合时做过客户端,所以这里只展示服务端的过程。
(4)我按照以下的构思开始编写服务端程序:首先创建套接字,然后绑定地址和端口(此处端口选择了我的班级2441),然后listen开始监听,accept接受客户端请求,并返回一个新的套接字对象,然后创建一个数据交互的循环,最后用close关闭连接。在经过多次纠错和调整之后,以下是最终得到的程序和运行结果:

3. 实验过程中遇到的问题和解决过程
- 问题1:运行失败,发现是两个人用了不一样的四位数的通信端口。
- 问题1解决方案:在询问老师之后改成了使用一样的通信端口。
- 问题2:运行失败,发现是IP地址的错误。
- 问题2解决方案:查询作为服务端的计算机的ip地址,服务端和客户端的程序中都填写此ip地址。
- 问题3:服务端程序运行失败,发现是我的循环中错误使用了server_socket而非client_socket。
- 问题3解决方案:在询问老师后了解到当 server_socket接收到客户端的连接请求时,会返回一个新的套接字对象client_socket,server是用来监听的,我在了解了原理后进行了修改。
- ...
其他(感悟、思考等)
通过这次实验,我不仅在技术层面收获颇丰,对网络编程的理解也更加深入。在 socket 编程过程中,每个步骤都紧密相连,从创建套接字、绑定地址端口,到监听和接受连接,再到数据交互与关闭连接,任何一个环节出错都可能导致程序无法正常运行。这让我明白,编写网络程序需要严谨的态度和对细节的把控,一个小小的端口号错误或 IP 地址偏差,都能引发一系列问题。
同时,在与他人合作的过程中,我体会到了沟通与协作的重要性。与王老师和同学配合时,遇到的端口不一致、IP 地址错误等问题,都需要及时交流、共同排查。这种合作不仅解决了技术难题,还让我学会从不同角度思考问题,理解他人的编程思路,提高了团队协作能力。

浙公网安备 33010602011771号