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. 多个if...else和switch...case语句的区别和分析

    1.场景: 当我们有一个判断条件的时候,显然用if语句比较方便有效. 但当判断条件很多的时候,我们可以使用if语句或者if....eles 语句和switch  case 语句. 2.如何选择 一般情 ...

  2. [Notes-DS-1]时间复杂度的几个概念和计算方法

    ..加点字才算原创?

  3. C语言源文件如何编译为exe

    先观看https://blog.csdn.net/u014772182/article/details/43348465来配置gcc环境随后在cmd中cd到目标文件夹gcc main.c -o ste ...

  4. 使用go自定义生成项目LISENSE(授权协议)

    需要使用一个使用go开发的工具,叫license,在Windows下安装这个工具,请确保你使用的go sdk是1.16以上的版本,然后执行下面的命令: go install github.com/ni ...

  5. 001 jmete文件目录介绍及汉化

    1.Jmeter文件目录介绍 1.1 bin目录:存放可执行文件和配置文件 jmeter.bat:windows的启动文件 jmeter.log:日志文件 jmeter.sh:linux的启动文件 j ...

  6. Delphi 新语法:匿名函数

    这里的新语法一般指Delphi7不支持的语法. 对于比较简单实现,不需要复用,开发者更喜欢在使用时,原地声明,而没有必要单独声明并实现这个方法. 通过关键字reference来定义一个匿名函数. 下面 ...

  7. 虚拟机中debian11修改控制台(console)分辨率|linux控制台分辨率|linux console resolution

    实体机一般安装好驱动分辨率就没啥问题,而且个人pc也没有只用控制台的需求.但是虚拟机中不安装桌面的时候,默认的控制台分辨率常不能满足需求. 这个需求貌似也比较少,而且几乎搜到的文章大部分都是旧的,不能 ...

  8. zk单机集群安装

    参考:https://www.cnblogs.com/leeSmall/p/9563547.html zk单机集群安装 cd /usr/local 下载 wget http://mirror.bit. ...

  9. Windows打开回收站的几种方式

    1. 桌面双击回收站图标打开回收站,简单.快捷.方便,但在打开多个窗口时候还要最小化这些窗口以显示桌面,如果还要迅速恢复这些窗口的话也算是麻烦 2. 磁盘每个分区根目录下都有一个名称为$Recycle ...

  10. pyton3 字典排序

    1. 字典排序 d={'a':1,'c':3,'b':2} d1={k:d[k] for k in sorted(d)}