python程序设计遇到的问题_20192310 实验三《Python程序设计》实验报告

学号 20192310 《Python程序设计》实验三报告

课程:《Python程序设计》

班级: 1923

姓名: 严嘉钰

学号:20192310

实验教师:王志强

实验日期:2020年5月22日

必修/选修: 公选课

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()

1942890-20200522223342882-1199813418.jpg

1942890-20200522223351586-85358160.png

1942890-20200522223737496-166589503.png

1942890-20200522223741300-79505561.png

3. 实验过程中遇到的问题和解决过程

- 问题1:初次使用base64加密,不知道将str转换成byte格式才行

- 问题1解决方案:上网查找报错原因解决

- 问题2:对文件操作部分有些遗忘

- 问题2解决方案:查找了《python从入门到实践》一书获得答案

- ...

其他(感悟、思考等)

对比了其他同学做的实验作业,有些编的我都看不懂,感觉自己的差距还是很大的,好好钻研《python从入门到入土》吧

参考资料

《python从入门到实践》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值