python的实验报告怎么写_学号:20191221,《python实验设计》实验报告三

学号 2019-2020-2 《Python程序设计》实验三讲述

课程:《Python程序设计》

班级: 1912

姓名: 何应霆

学号:20191221

实验西席:王志强

实验日期:2020年5月16日

必修/选修: 公选课

1.实验内容

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

2. 实验历程及效果

客户端代码如下:

import socket

c=0

key = 0

d = 0

n = 0

for o in range(1,1000):

key = key10 + 1

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

a.connect((‘192.168.56.1’,8001))

p = input(“请输入文件的位置:”)

File = open(p,”r”)

list1 = File.readlines()

for i in list1:

n = n+1

a.sendall(str(n).encode())

for i in list1:

for j in i:

b = ord(j)

d = d256+b

e = d^key

a.sendall(str(e).encode())

File.close()

c = a.recv(1024)

print(c.decode())

a.close()

服务器代码如下:

import os

import socket

key = 0

b = “”.encode()

for o in range(1,1000):

key = key*10 + 1

g = “”

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

coon.bind((‘192.168.56.1’,8001))

coon.listen()

coon,daress = coon.accept()

File = open(“C:\Users\ginjzlbg\Desktop\test\Filerecived”,”w+”)

n = coon.recv(1024)

n1 = int(n.decode())

for i in range(0,n1):

b = coon.recv(1024)

d = int(b.decode())

d = d ^ key

while d != 0:

e = d % 256

d = d – e

d = int(d // 256)

m = chr(e)

g = m + g

File.write(g)

File.close()

coon.sendall(“已收到文件”.encode())

这是文件C:\Users\ginjzlbg\Desktop\test\Filesend以及运行后多出的文件Filerecived

这里我接纳的是xor加密算法,key用100个1组成的一百位数充当,由客户端加密后传输到服务器,再由服务器解密后传输到文件中

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

虽然只遇到了一个问题,然则确确实实被困扰了良久

问题1:多行吸收的问题

问题1解决方案:引入了变量n,在最先传输文件前先用n将行数记录下来而且传输到服务器,再利用for循环吸收

其他(感悟、思索等)

以前自己写过的代码一定要保留,好比这次中XOR加密的方式和解密的方式所有来自于我之前写的代码中

想要自己以后也看得懂代码一定要注释,好比这次我花了许多时间来搞懂之前自己写的代码,是很不划算的。

原文链接:https://www.cnblogs.com/ginjzlbg/p/12900069.html

本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值