20193306 实验3 《python程序设计》实验报告
20193306 2021-2022-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 1933
姓名: 于子涵
学号:20193306
实验教师:王志强
实验日期:2022年4月21日
必修/选修: 公选课
1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信,其中socket通信是实验的主线。
2. 实验过程及结果
分别创建服务端、客户端,选择通信端口,首先实现交互过程。在此基础上借助文件进行内容传输。
服务器端
客户端
运行后文件内容同步
3. 实验过程中遇到的问题和解决过程
- 问题1:OSError: [Errno 22] Invalid argument
- 问题1解决方案:增加r,r"file"意思是指为了避免\xx是一个转义字符而导致的错误,也就是说加上r之后,“”里的就不再出现转义字符,变成纯的文件地址。
- 问题2:[WinError 10054] 远程主机强迫关闭了一个现有的连接
- 问题2解决方案:出现这样的错误,是因为我们访问的速度过于频繁,致使网页认为我们是恶意的攻击行为,就出现了远程主机强迫关闭的现象。减缓访问速度即可。
- 问题3:a bytes-like object is required, not str
- 问题3解决方案:这个意思就是"当前对象字节类来型, 而不是字符串类型",就是需要先把这个字段转成字节类型。python bytes和str两种类型可以通过函数encode()和decode()相互转换袭,str通过encode()方法可以转换为bytes。反过来,bytes通过decode()方法可转换为str
- 问题4:加解密功能
- 问题4解决方案:utf-8不算严格的加解密,是编码,其实是和加密区分开的,但因为比加密简单熟悉,用这个代替了实验中的加密功能......
其他(感悟、思考等)
虽然上学期学过socket编程内容,但是仍然十分抵触,因为与编程实践内容混在一起增加了我的种种困难,之后要着重理解、应用、丰富这次实验的内容,不断练习,争取用python语言与通信专业内容更好融会贯通。