python的实验过程中的问题_20191108 实验三《Python程序设计》实验报告

20191108 2019-2020-2 《Python程序设计》实验三报告

课程:《Python程序设计》

班级: 1911

姓名: 朱家婧

学号:20191108

实验教师:王志强

实验日期:2020年5月21日

必修/选修: 公选课

1.实验内容:

创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。

2.实验要求:

(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;

(2)要求包含文件的基本操作,例如打开和读写操作。

(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。

(4)程序代码托管到码云。

3. 实验过程及结果

#客户端

import socket

import os

import base64

s = socket. socket(socket.AF_INET ,socket.SOCK_STREAM)

s.connect(('127.0.0.1', 8001))

str1 = input("请输入要传输的文件名: ")

s.sendall(str1. encode())

os.chdir(r"D:\demo\1911" )

file = open(str1,'r')

text = file.read()

text = text. encode('utf-8')

encode_text = base64.b32encode(text)

s.sendall(encode_text)

file.close()

data = s.recv(1024)

print("服务器的信息: ",data.decode())

s. sendall("收到" . encode())

name = s.recv(1024)

print("文件: ",name.decode())

data = s.recv(1024)

f = open("reply.txt","w")

f.write(data.decode()

f.close()

print("文件内容已加密发送")

s.sendall("已成功接收".encode())

s.close()

#服务器

import socket

import os

import base64

os.chdir(r"D:\demo\1911" )

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.bind(('127.0.0.1', 8001))

s.listen()

conn, address = s.accept()

name = conn. recv(1024)

print( "文件:", name.decode())

data = conn.recv(1024)

f=open("receive.txt", "w")

data1 = base64.b32decode(data)

f.write(data1.decode())

f.close()

print("加密信息解密后保存")

conn. sendall("准备接收".encode())

data1 = conn.recv(1024)

conn. sendall("reply. txt".encode())

f = open("receive.txt","г")

datal = f.read()

conn. sendall(data1.encode())

f.close()

data1 = conn.recv(1024)

print("信息",datal.decode())

s.close()

服务器结果:

1939504-20200523154408011-882749265.png

客户端结果:

1939504-20200523154713514-1076756528.png

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

问题1:connect时[8005]总是被计算机强制拒绝

问题1解决方案:上百度搜索还有哪些可以,后来发现[8001]不会被我的电脑拒绝

其他(感悟、思考等)

百度是个好东西

参考资料

附码云链接:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验三Python程序设计基础 实验目的: 1.掌握Python程序的基本结构。 2.理解Python程序的执行过程。 3.学会使用Python基本的数据类型和控制结构。 4.学会定义和调用函数。 实验环境: Python 3.7以上版本,Jupyter Notebook 实验任务: 任务一:Python程序基本结构 1. Python程序的基本结构是什么? 2. 请用Python代码输出“Hello World!”。 任务二:Python程序的执行过程 1. Python程序的执行过程是什么? 2. Python程序的语句是按照什么顺序执行的? 任务三:Python基本数据类型和控制结构 1. Python基本的数据类型有哪些? 2. Python的控制结构有哪些? 3. 请用Python代码实现以下功能: (1)定义一个列表,包含数字1到10。 (2)输出列表的所有元素。 (3)输出列表的第一个和最后一个元素。 (4)输出列表的第2到第5个元素。 (5)将列表的元素按照从大到小的顺序排列并输出。 任务四:Python函数的定义和调用 1. Python如何定义函数? 2. Python如何调用函数? 3. 请用Python代码实现以下功能: (1)定义一个函数,计算任意两个数的和。 (2)调用该函数,计算2和3的和并输出结果。 (3)定义一个函数,计算任意两个数的积。 (4)调用该函数,计算4和5的积并输出结果。 (5)定义一个函数,将任意一个字符串反转并输出。 (6)调用该函数,将字符串“abcdefg”反转并输出结果。 实验报告: 请按照实验任务提交实验报告,将代码和运行结果截图并附在报告

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值