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!

参考资料

posted @ 2022-04-28 19:12  梅花落南山  阅读(62)  评论(0编辑  收藏  举报