20244215 实验三《Python程序设计》实验报告
20244215 2024-2025-2 《Python程序设计》实验3报告
课程:《Python程序设计》
班级: 2442
姓名: 曾晴
学号:20244215
实验教师:王志强
实验日期:2025年4月15日
必修/选修: 公选课
1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。要求包含文件的基本操作,例如打开和读写操作;发送方从文件读取内容,加密后并传输,接收方收到密文并解密,保存在文件中;程序代码托管到码云。
2. 实验过程及结果
1、创建服务端,选择使用Python的socket库,创建一个TCP套接字对象,绑定到指定地址并开始监听。与20244226张毓格客户端连接,接收客户端发送的消息并输入要回复的消息,进入循环。最后当循环结束时,关闭与客户端的连接以及自身的Socket。
代码如下:
运行如下:
2、创建客户端,同样使用socket库,连接到20244226张毓格服务器的地址和端口;进入循环,发送消息并接收服务器回复的消息,接着询问是否继续,若输入N,则结束循环。
代码如下:
运行如下:
3、文件操作与加解密:在服务端接收数据后,进行解密并保存到文件
3. 实验过程中遇到的问题和解决过程
- 问题1:与他人撞端口,端口被占用。
- 问题1解决方案:更换一个相对小众的未被占用的端口。
- 问题2:服务端客户端始终连不上
- 问题2解决方案:经过多方验证,发现是连接网络不一致且IP地址输入错误。
其他(感悟、思考等)
通过这次实验,我对Python的Socket编程和文件操作有了更深入的理解。在实际编写代码过程中,遇到了各种细节问题,如端口占用、服务端客户端连接不上等,通过询问老师、借助ai大数据以及重新选择端口得以解决。这让我意识到编程不仅需要掌握理论知识,更需要具备细致的态度以及解决实际问题的能力。同时,在实现加密和解密功能时,使用了简单的替换方式,让我对数据安全传输有了初步的意识。最后,在此次的“聊天室”实验中,我们体验到了编写代码及运行时双人互动的乐趣,也提高了我之后学习Phython的积极性。