93
社区成员
发帖
与我相关
我的任务
分享# 20234228 2023-2024-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2242
姓名: 许均益
学号:20224209
实验教师:王志强
实验日期:2024年4月22日
必修/选修: 公选课
## 1.实验内容
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)服务器端创建ServerSocket监听指定端口,等待客户端连接。当已接受到一个客户端连接时,读取客户端发送的字符串,并打印出来。最后,关闭客户端Socket连接及ServerSocket监听。
(3)将程序代码托管到码云上。
## 2. 实验过程及结果
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
服务端的代码内容:

客户端的代码内容:

我们先从服务端发送信息,后从客户端接收信息
服务端通信后的截图如下: 
客户端通信后截图如下

## 3. 实验过程中遇到的问题和解决过程
- 问题1:服务端接收不到客户端发来的消息
- 问题1解决方案:发现在代码和地址输入过程中有空格和中文标点符号,使得程序无法顺利进行
- 问题2:报错“FileNotFoundError: [Errno 2] No such file or directory: 'secret.txt'”
- 问题2解决方案: 在对应文件夹下创建名为secret.txt的txt文件,从而使要发送的语句能够写入到该本地文件中。
## 其他(感悟、思考等)
在学习Socket编程之前,我对计算机网络的知识主要停留在理论层面,如TCP/IP协议栈、TCP/UDP的区别、套接字的概念等。然而,通过亲手编写Socket程序,这些抽象的概念变得生动而具体。我亲历了从创建Socket对象,到绑定端口、监听连接请求,再到接收和发送数据的全过程,理论知识得以在实践中得到验证和深化。这种理论与实践的紧密结合,极大地提升了我对网络通信原理的认知,让我对网络协议栈的工作机制有了更为直观的理解。