20211121杨博川《Python程序设计》实验三报告
学号 20211121《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2111
姓名: 杨博川
学号:20211121
实验教师:王志强
实验日期:2022年4月21日
必修/选修: 公选课
1.实验内容
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)执行文件的基本操作,例如打开和读写操作。
(3)完成:发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
(4)程序代码托管到码云。
2. 实验过程及结果
2.1首先了解了socket的基本概念并学习了如何利用socket构建接收器
2.2利用socket构造服务端,并选择一个通信端口
(常用端口可能会被占用),在每一次执行传输时要先激活服务端
代码:
import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind(('127.0.0.1',8001))#绑定.Localhost = 127.0.0.1 s.listen()#监听 conn,address = s.accept()#阻塞 data = conn.recv(1024) print(data.decode()) conn.sendall(("娇娇收到:"+str(data.decode())).encode()) s.close()
启动服务端
2.3构造客户端,并实现通信演示
代码:
import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('127.0.0.1',8001)) str = input("要给娇娇发什么呀:") s.sendall(str.encode()) data = s.recv(1024) print(data.decode()) s.close()
运行过程:
启动通信端
发送信息
服务器接收
2.4文件的读取,加密,传输
发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
调整客户端代码以加入文件
代码:
import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('127.0.0.1',8001)) file1 = open("hello",'r+', encoding="GBK") file1.write("晚安") str1 = file1.readlines() file1.close() s.sendall(str(str1).encode()) data = s.recv(1024) print(data.decode()) s.close()
启动通信端
此时自动发送文件中的内容
服务器接收
2.5代码托管到码云
3. 实验过程中遇到的问题和解决过程
- 问题1:对socket了解极少
- 问题1解决方案:由老师和学长进行解答。
- 问题2:文件的加密传输出现bug
- 问题2解决方案:询问老师调节代码
- ...
其他(感悟、思考等)
很神奇且有用的一节课,简单构造了自己的通信程序,生活不易,我用python!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!