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程序设计实验三报告的更多相关文章

  1. 20192113 2020-2021-2 《Python程序设计》实验三报告

    20192113 2020-2021-2 <Python程序设计>实验三报告 课程:<Python程序设计> 班级: 1921 姓名: 衣丽莎 学号:20192113 实验教师 ...

  2. 20192204李龙威 2019-2020-2 《Python程序设计》实验三报告

    20192204李龙威 2019-2020-2 <Python程序设计>实验三报告 课程:<Python程序设计> 班级: 1922 姓名: 李龙威 学号:20192204 实 ...

  3. Python程序设计实验报告三:分支结构程序设计

    安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  姚彩琴  学号3190505129 成绩 日期     2020.4.5     指导老师       修宇 [实验目的 ...

  4. 20172310 2017-2018-2 《程序设计与数据结构》实验三报告(敏捷开发与XP实践)

    20172310 2017-2018-2 <程序设计与数据结构>实验三报告(敏捷开发与XP实践) 课程:<程序设计与数据结构> 班级: 1723 姓名: 仇夏 学号:20172 ...

  5. Python程序设计实验报告二:顺序结构程序设计(验证性实验)

      安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  崔攀  学号3190505136 成绩 日期     2020.3.22     指导老师       修宇 [实验 ...

  6. Python程序设计实验报告一:熟悉IDLE和在线编程平台

    安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  崔攀  学号3190505136 成绩_____           日期     2020.3.8     指导老师  ...

  7. Python程序设计实验报告四:循环结构程序设计(设计型实验)

    安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  姚彩琴  学号3190505129 成绩 日期     2020.4.8     指导老师       修宇 [实验名称 ...

  8. PYTHON程序设计实验

    Python程序设计实验报告一: 熟悉IDLE和在线编程平台 安徽工程大学 Python程序设计实验报告 班级 物流191 姓名 邹缕学号 3190505117成绩 ▁▁▁ 日期 2020.3.5 指 ...

  9. Python程序设计 实验 1 熟悉 IDLE 和在线编程平台

    ------------恢复内容开始------------ 安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  姚彩琴  学号3190505129 成绩 日期     2 ...

  10. 20172301 《Java软件结构与数据结构》实验三报告

    20172301 <Java软件结构与数据结构>实验三报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 郭恺 学号:20172301 实验教师:王志强老师 ...

随机推荐

  1. StunServer

    Stun 服务器 npm下载stun包 npm i stun -s google stun服务器 google的stun的服务器一般国内访问较慢,所以一般自己搭建一个服务器 const stun = ...

  2. KETTLE 首次连DB2报错,无驱动。

    DB2 把相应数据库的jar包放入 data-integration\lib 或者data-integration\libswt\win64 重启kettle程序 连接成功 驱动包,我是用的aqua工 ...

  3. JWT 工具类的编写

    导入JWT pom依赖 <!--JWT 依赖--><dependency> <groupId>io.jsonwebtoken</groupId> < ...

  4. 25 String 对象中的属性

    <!DOCTYPE html> <html lang="en">   <head>     <meta charset="UTF ...

  5. mysql压缩表小记

    参考文档: https://www.163.com/dy/article/GI4CH5N305319P76.html https://learn.lianglianglee.com/专栏/MySQL实 ...

  6. 关于maven的几个问题

    关于maven的几个问题: 1.maven是什么? 官方的回答是:Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件. 个人的解释是:一个管理工具, ...

  7. Mac 安装nvm

    根据命令安装 nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash 当前窗口执行nv ...

  8. RepOpt-VGG:梯度参数化的开创

    ​ 本文来自公众号"AI大道理" ​ YOLov6的量化问题: yolov6在结构中大量使用了重参数结构,导致数据分布过差,PTQ精度急剧下降.另外,重参数化结构网络无法直接使用Q ...

  9. CAD中相交线怎样打断?CAD打断相交线步骤

    在CAD设计过程中,如果想要打断图纸中相交线该如何操作呢?大家第一个想到的是不是CAD打断命令?没错,CAD打断命令是可以实现的,但是过于麻烦,今天小编来给大家分享一个更简单的方法,那就是浩辰CAD软 ...

  10. ConvTranspose的output_padding问题

    当stride>=2时,反向传播,由dy, w得到dx的时候,dx的形状不唯一. 例如input_shape (7,7)或者(8,8)在kernel(3,3)上,以stride=2进行卷积, 最 ...