python的实验报告怎么写_学号:20191221,《python实验设计》实验报告三
學(xué)號 2019-2020-2 《Python程序設(shè)計》實驗三講述
課程:《Python程序設(shè)計》
班級: 1912
姓名: 何應(yīng)霆
學(xué)號:20191221
實驗西席:王志強
實驗日期:2020年5月16日
必修/選修: 公選課
1.實驗內(nèi)容
建立服務(wù)端和客戶端,服務(wù)端在特定端口監(jiān)聽多個客戶請求。客戶端和服務(wù)端通過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()
服務(wù)器代碼如下:
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組成的一百位數(shù)充當(dāng),由客戶端加密后傳輸?shù)椒?wù)器,再由服務(wù)器解密后傳輸?shù)轿募?/p>
3. 實驗歷程中遇到的問題和解決歷程
雖然只遇到了一個問題,然則確確實實被困擾了良久
問題1:多行吸收的問題
問題1解決方案:引入了變量n,在最先傳輸文件前先用n將行數(shù)記錄下來而且傳輸?shù)椒?wù)器,再利用for循環(huán)吸收
其他(感悟、思索等)
以前自己寫過的代碼一定要保留,好比這次中XOR加密的方式和解密的方式所有來自于我之前寫的代碼中
想要自己以后也看得懂代碼一定要注釋,好比這次我花了許多時間來搞懂之前自己寫的代碼,是很不劃算的。
原文鏈接:https://www.cnblogs.com/ginjzlbg/p/12900069.html
本站聲明:網(wǎng)站內(nèi)容來源于網(wǎng)絡(luò),若有侵權(quán),請聯(lián)系我們,我們將及時處理。
總結(jié)
以上是生活随笔為你收集整理的python的实验报告怎么写_学号:20191221,《python实验设计》实验报告三的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。