学号 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
本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。