# 20231108 2023-2024-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2311
姓名: 陈震浩
学号:20231108
实验教师:王志强
实验日期:2024年4月20日
必修/选修: 公选课
## 1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
(4)程序代码托管到码云。
注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现。
## 2. 实验过程及结果
1. 认识socket: Socket(又称套接字)起源于Unix,是应用层与TCP/IP协议族通信的中间软件抽象层。复杂的TCP/IP协议族隐藏在了Socket接口内部,用户只需要简单地使用Socket接口来进行网络编程。应用程序通常是通过Socket向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。
2.(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序:
加密代码文件:DesModule.py
服务端程序:文件名:MySocketServer.py
客户端程序:文件名:MySocketClient.py
运行结果:
接下来我们改进一下程序,看看能不能实现持续通话
服务端程序:
客户端程序:
输出结果:客户端和用户端实现了交流,这里只展示了一次对话,实际上可以进行很多次
## 3. 实验过程中遇到的问题和解决过程
- 问题1:先运行客户端计算机不响应
- 问题1解决方案:先运行服务端,再运行客户端,这样才可以正常响应
- 问题2:不了解加密解密方法
- 问题2解决方案:通过浏览资料以及实验了解了加密方法
## 其他(感悟、思考等)
Socket是实现数据通信的重要工具。它允许不同计算机或同一台计算机的不同进程之间进行通信,从而实现数据的交换和共享。 在学习Socket的过程中,我深刻体会到了TCP/UDP协议与Socket之间的关系,还学到了send和recv函数的使用方法。
## 参考资料
- [TCP/IP网络通信之Socket编程入门](TCP/IP网络通信之Socket编程入门_哔哩哔哩_bilibili)
- [还不会python 实现常用的数据编码和对称加密?看这篇文章就够啦~](还不会python 实现常用的数据编码和对称加密?看这篇文章就够啦~_res python加密-CSDN博客)