日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python程序设计上机实践第三章答案_20192419 实验三《Python程序设计》实验报告

發布時間:2025/3/8 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python程序设计上机实践第三章答案_20192419 实验三《Python程序设计》实验报告 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學號 2019-2020-2 《Python程序設計》實驗3報告

課程:《Python程序設計》

班級:1924

姓名: 萬騰陽

學號:20192419

實驗教師:王志強

實驗日期:2020年5月16日

必修/選修: 公選課

1.實驗內容

創建服務端和客戶端,服務端在特定端口監聽多個客戶請求。客戶端和服務端通過Socket套接字(TCP/UDP)進行通信。

2. 實驗過程及結果

先引入socket 庫,隨后還需要os,struct,sys等,由于這里使用的是base64加密,所以需要引入base64庫進行加密。準備工作做完了,就開始建立連接了。建立連接時要找出沒有被占有的端口,否則無法連接。同時還要找到可使用的IP地址連接完畢后就可以傳輸文件了。

服務器端:

先是等待請求并接受(程序會停留在這一旦收到連接請求即開啟接受數據的線程),接收數據,收到請求后回復,申請相同大小的空間存放發送過來的文件名與文件大小信息,接收文件名與文件大小信息,判斷是否接收到文件頭信息,獲取文件名和文件大小,將分批次傳輸的二進制流依次寫入到文件,此時文件應為base64 傳輸結束記得斷開連接避免出現錯誤。

客戶端:

創建套接字對象 ‘s’,建立需要傳輸的文件路徑,定義定義文件信息。128s表示文件名為128bytes長,l表示一個int或log文件類型,在此為文件大小,將文件進行base64加密,將傳輸文件以二進制的形式分多次上傳至服務器,之后關閉套接字對象。

客戶端代碼:

import socket

import os

import sys

import struct

import base64

f_org = open(r'D:\qwer.txt', 'r')

content = f_org.read()

content1 = content.encode(encoding='utf-8')

content2 = base64.b64encode(content1)

f_org.close()

with open(r'D:\qwer.txt', 'wb+') as f_org:

f_org.write(content2)

print("have encrypted,the ciphertext is:"+ str(content2))

def socket_client():

try:

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

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

except socket.error as msg:

print(msg)

sys.exit(1)

print(s.recv(1024))

filepath = r'D:\qwer.txt'

if os.path.isfile(filepath):

fileinfo_size = struct.calcsize('128sl')

fhead = struct.pack('128sl', os.path.basename(filepath).encode('utf-8'), os.stat(filepath).st_size)

s.send(fhead)

fp = open(filepath, 'rb')

while 1:

data = fp.read(1024)

if not data:

print('{0} file send over...'.format(os.path.basename(filepath)))

break

s.send(data)

s.close()

if __name__ == '__main__':

socket_client()

服務器端代碼:

import sys

import os

import base64

def socket_service():

try:

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

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

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

s.listen(10)

except socket.error as msg:

print(msg)

sys.exit(1)

print('Waiting connection...')

while 1:

conn, addr = s.accept()

t = threading.Thread(target=deal_data, args=(conn, addr))

t.start()

def deal_data(conn, addr):

print('Accept new connection from {0}'.format(addr))

conn.send('Hi, Welcome to the server!'.encode('utf-8'))

while 1:

fileinfo_size = struct.calcsize('128sl')

buf = conn.recv(fileinfo_size)

if buf:

filename, filesize = struct.unpack('128sl', buf)

fn = filename.strip(b'\00')

fn = fn.decode()

print('file new name is {0}, filesize if {1}'.format(str(fn), filesize))

recvd_size = 0

os.chdir(r"C:\Users\86186\Desktop")

fp = open('./' + str(fn), 'wb')

print('start receiving...')

while not recvd_size == filesize:

if filesize - recvd_size > 1024:

data = conn.recv(1024)

recvd_size += len(data)

else:

data = conn.recv(filesize - recvd_size)

recvd_size = filesize

fp.write(data)

url = data

str_url = base64.b64decode(url).decode("utf-8")

file = open(r'C:\Users\86186\Desktop'+'./' +str(fn) , 'w+')

file.write(str_url)

fp.close()

print('end receive...')

conn.close()

break

if __name__ == "__main__":

socket_service()

部分運行結果:

3. 實驗過程中遇到的問題和解決過程

之前有一次搭建服務器時,我想試著用自己的IP地址,然后上網去找,找到后就直接運行了客戶端,隨后一直被服務器拒取。

后來才發現我忘記先運行服務器了。

隨后的加密文件讓我陷入了苦惱,python庫中含有哈希值加密,但后面去查找,竟然沒有用哈希值解密這樣的貼子。然后我只能采取了base64加密,說是加密其實也算是一種偽加密,它只是換了一種編碼方式而已,任何人通過python中的base64庫進行解密。

其他(感悟、思考等)

這次實驗因為還沒有學習服務器的相關知識,大多數都是靠著百度完善的代碼。要想熟練運用python必須多實踐,多編寫代碼,這樣運用起來就輕松很多。當然,做實驗前還需要把每個細節弄清楚,弄明白,實驗后,還要復習,思考,這樣印象深刻,記得才牢固,否則實驗后就會忘得一干二凈,這還不如不做。

透過這次實驗我學到了不少知識,更重要的事,做實驗的過程,思考問題的方法,這與做其他的實驗是通用的,真正使我們受益匪淺。

總結

以上是生活随笔為你收集整理的python程序设计上机实践第三章答案_20192419 实验三《Python程序设计》实验报告的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天曰天天爽 | 天天插综合 | 中文字幕在线一区二区三区 | 国产一区二区在线免费观看 | 狠狠操网址 | 欧美又粗又长又爽做受 | 日韩免费专区 | 污导航在线 | 在线免费精品 | 91一区二区三区在线观看 | 欧美大黑bbbbbbbbb在线 | 国产91精品欧美 | 婷婷影音| 亚洲天堂五码 | 久久精品视频网站 | 久久噜噜色综合一区二区 | 西西4444www大胆无码 | 日本在线三级 | 国产一级免费观看 | 精品久久久久久亚洲 | 国产日本欧美一区二区 | 2019日韩中文字幕mv | 黄色一级黄色片 | www在线看| 午夜三区 | 黄色片子一级 | 草比网站 | 一区二区国产精品精华液 | 天堂岛av| 极品少妇网站 | 午夜xx | 99久久久无码国产精品性波多 | 国产一级片免费 | 日韩视频网址 | 男女在线免费观看 | 在线观看免费黄色 | 午夜影院试看 | 国产伦精品一区二区三区视频免费 | 精品一二区| 国内精品第一页 | 91视频国产精品 | 午夜激情男女 | 日韩精品人妻一区二区中文字幕 | 女人18毛片水真多 | 天天曰天天 | 亚洲精品入口 | 亚洲成人精品网 | 中文字幕日韩精品在线观看 | 免费又黄又爽又猛大片午夜 | 中文字幕国产日韩 | 91精品观看 | 日本xxxxwwwww | 亚洲精品大片 | 国产91一区 | 一区二区三区精品视频 | 在线观看av一区 | 激情文学8888 | 成人爱爱视频 | 噼里啪啦国语高清 | 亚洲国产一区二区三区在线观看 | 久久小草| 亚洲中文字幕无码av | 成人精品网 | 国产成人激情视频 | 69er小视频 | 国产在线视频你懂的 | 人人妻人人玩人人澡人人爽 | 日韩亚洲视频在线观看 | 亚洲一级片免费 | 成人高潮片免费 | 秘密基地电影免费版观看国语 | 亚洲永久免费av | 香蕉视频免费网站 | 亚洲欧美偷拍视频 | 国产乱码久久久久久 | 日韩精品第一区 | 日本熟妇一区二区三区四区 | 极品销魂美女少妇尤物 | 操穴影院 | 91在线视频免费观看 | 成人动漫中文字幕 | 69精品人妻一区二区三区 | 日韩在线观看 | 久久精品在线播放 | 正在播放国产一区 | 国产一区二区a | 亚洲色图28p | 中文字幕23页 | 国产欧美综合在线 | 日本女人黄色片 | 一级肉体全黄毛片 | 给我看免费高清在线观看 | 久久精品日韩无码 | 色播视频在线播放 | 中文字幕――色哟哟 | jizz国产| 四虎av网站| av中文天堂| 老牛影视一区二区三区 |