20192305 王梓全Python程序设计实验三报告
20192305 王梓全Python程序设计实验三报告
课程:《Python程序设计》
班级: 1923
姓名: 王梓全
学号:20192305
实验教师:王志强
实验日期:2021年5月24日
必修/选修:公选课
1.实验内容
- 创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
2.实验过程及结果
- (1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
- (2)让用户输入需要发送的文件名后打开并读取文件内容
- (3)发送方从文件读取内容,加密后传输;
- (4)接收方收到密文并解密,保存在文件中。
- (5)程序代码托管到码云
发送方
作者:王梓全
import socket
import sys
import base64
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 8001))
except socket.error as err:
print(err)
sys.exit(1)
except socket.error as err:
print(err)
sys.exit(1)
path = input("请输入待传输文件的路径:")
with open(path, 'r') as object:
str = object.read(1024).encode('utf-8')
print("加密中")
strencode = base64.b64encode(str)
print("加密完毕")
s.sendall(strencode)
data = s.recv(1024)
print(data)
服务器端
作者:王梓全
import socket
import base64
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('127.0.0.1', 8001))
s.listen()
except socket.error as err:
print(err)
err.exit(1)
conn, address = s.accept()
data = conn.recv(1024)
print("已接收到文件:" + data.decode())
conn.sendall(("服务器已经接收到信号" + str(data)).encode())
with open(r'C:/Intel/receive.txt', 'w+') as rec:
strdecode = base64.b64decode(data)
rec.write(strdecode.decode("utf-8"))
print("已终止")
s.close()


3. 实验过程中遇到的问题和解决过程
- 问题1:初次使用base64加密,不知道将str转换成byte格式才行
- 问题1解决方案:上网查找报错原因解决
- 问题二:对文件操作部分有些遗忘
- 问题二解决方案:查找了《python从入门到实践》一书获得答案
其他(感悟、思考等)
python是一门面向对象的语言,其语言简洁,且对类型要求较弱,与C语言相比更适合初学者。python中许多语法不加记忆容易遗忘,需要经常的编写程序以及翻看教学资源以求熟练。对比了其他同学做的实验作业,有些编的我都看不懂,感觉自己的差距还是很大的,好好钻研《python从入门到入土》吧
参考资料
- 《python从入门到实践》
20192305 王梓全Python程序设计实验三报告的更多相关文章
- 20192113 2020-2021-2 《Python程序设计》实验三报告
20192113 2020-2021-2 <Python程序设计>实验三报告 课程:<Python程序设计> 班级: 1921 姓名: 衣丽莎 学号:20192113 实验教师 ...
- 20192204李龙威 2019-2020-2 《Python程序设计》实验三报告
20192204李龙威 2019-2020-2 <Python程序设计>实验三报告 课程:<Python程序设计> 班级: 1922 姓名: 李龙威 学号:20192204 实 ...
- Python程序设计实验报告三:分支结构程序设计
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.5 指导老师 修宇 [实验目的 ...
- 20172310 2017-2018-2 《程序设计与数据结构》实验三报告(敏捷开发与XP实践)
20172310 2017-2018-2 <程序设计与数据结构>实验三报告(敏捷开发与XP实践) 课程:<程序设计与数据结构> 班级: 1723 姓名: 仇夏 学号:20172 ...
- Python程序设计实验报告二:顺序结构程序设计(验证性实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩 日期 2020.3.22 指导老师 修宇 [实验 ...
- Python程序设计实验报告一:熟悉IDLE和在线编程平台
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩_____ 日期 2020.3.8 指导老师 ...
- Python程序设计实验报告四:循环结构程序设计(设计型实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.8 指导老师 修宇 [实验名称 ...
- PYTHON程序设计实验
Python程序设计实验报告一: 熟悉IDLE和在线编程平台 安徽工程大学 Python程序设计实验报告 班级 物流191 姓名 邹缕学号 3190505117成绩 ▁▁▁ 日期 2020.3.5 指 ...
- Python程序设计 实验 1 熟悉 IDLE 和在线编程平台
------------恢复内容开始------------ 安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2 ...
- 20172301 《Java软件结构与数据结构》实验三报告
20172301 <Java软件结构与数据结构>实验三报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 郭恺 学号:20172301 实验教师:王志强老师 ...
随机推荐
- 多个if...else和switch...case语句的区别和分析
1.场景: 当我们有一个判断条件的时候,显然用if语句比较方便有效. 但当判断条件很多的时候,我们可以使用if语句或者if....eles 语句和switch case 语句. 2.如何选择 一般情 ...
- [Notes-DS-1]时间复杂度的几个概念和计算方法
..加点字才算原创?
- C语言源文件如何编译为exe
先观看https://blog.csdn.net/u014772182/article/details/43348465来配置gcc环境随后在cmd中cd到目标文件夹gcc main.c -o ste ...
- 使用go自定义生成项目LISENSE(授权协议)
需要使用一个使用go开发的工具,叫license,在Windows下安装这个工具,请确保你使用的go sdk是1.16以上的版本,然后执行下面的命令: go install github.com/ni ...
- 001 jmete文件目录介绍及汉化
1.Jmeter文件目录介绍 1.1 bin目录:存放可执行文件和配置文件 jmeter.bat:windows的启动文件 jmeter.log:日志文件 jmeter.sh:linux的启动文件 j ...
- Delphi 新语法:匿名函数
这里的新语法一般指Delphi7不支持的语法. 对于比较简单实现,不需要复用,开发者更喜欢在使用时,原地声明,而没有必要单独声明并实现这个方法. 通过关键字reference来定义一个匿名函数. 下面 ...
- 虚拟机中debian11修改控制台(console)分辨率|linux控制台分辨率|linux console resolution
实体机一般安装好驱动分辨率就没啥问题,而且个人pc也没有只用控制台的需求.但是虚拟机中不安装桌面的时候,默认的控制台分辨率常不能满足需求. 这个需求貌似也比较少,而且几乎搜到的文章大部分都是旧的,不能 ...
- zk单机集群安装
参考:https://www.cnblogs.com/leeSmall/p/9563547.html zk单机集群安装 cd /usr/local 下载 wget http://mirror.bit. ...
- Windows打开回收站的几种方式
1. 桌面双击回收站图标打开回收站,简单.快捷.方便,但在打开多个窗口时候还要最小化这些窗口以显示桌面,如果还要迅速恢复这些窗口的话也算是麻烦 2. 磁盘每个分区根目录下都有一个名称为$Recycle ...
- pyton3 字典排序
1. 字典排序 d={'a':1,'c':3,'b':2} d1={k:d[k] for k in sorted(d)}