欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

《Python程序設(shè)計(jì)》實(shí)驗(yàn)三報(bào)告

li5236 ? 來源:博客園 ? 作者:博客園 ? 2022-03-30 15:21 ? 次閱讀

1.實(shí)驗(yàn)內(nèi)容

創(chuàng)建服務(wù)端和客戶端,服務(wù)端在特定端口監(jiān)聽多個(gè)客戶請求。客戶端和服務(wù)端通過Socket套接字(TCP/UDP)進(jìn)行通信

要求:

(1)創(chuàng)建服務(wù)端和客戶端,選擇一個(gè)通信端口,用Python語言編程實(shí)現(xiàn)通信演示程序;

(2)要求包含文件的基本操作,例如打開和讀寫操作。

(3)要求發(fā)送方從文件讀取內(nèi)容,加密后并傳輸;接收方收到密文并解密,保存在文件中。

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

2. 實(shí)驗(yàn)過程及結(jié)果

(1)設(shè)計(jì)思路

該實(shí)驗(yàn)?zāi)繕?biāo)是制作一個(gè)基于socket的通訊器,根據(jù)之前課上學(xué)習(xí)的內(nèi)容及課后作業(yè),本次實(shí)驗(yàn)不難完成。

加密上選擇的是基于pyDes的CBC模式DES加密,實(shí)現(xiàn)了客服端與服務(wù)器的雙向加密通信?;赑ython標(biāo)準(zhǔn)庫tkinter,實(shí)現(xiàn)了可視化選擇目標(biāo)文件的功能。但由于沒有具體實(shí)現(xiàn)tkinter窗體(極其不標(biāo)準(zhǔn)的使用方法),導(dǎo)致使用該功能后會(huì)有一個(gè)無內(nèi)容的tkinter窗體殘留,雖然不影響總體使用,但對程序的完成性和一致性有所破壞。

(2)主要代碼介紹

部分代碼有參考。

報(bào)告中只貼出了部分代碼,全部代碼已上傳碼云:服務(wù)器部分,客戶端部分,DES加解密部分

加解密部分:

基于pyDes庫實(shí)現(xiàn)DES加解密功能。

from pyDes import des, CBC, PAD_PKCS5

import binascii

key_ = ‘12345675’

def des_encrypt(s):

“”“

DES 加密

:param s: 原始字符串

:return: 加密后字符串,16進(jìn)制

”“”

secret_key = key_

iv = secret_key

k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)

en = k.encrypt(s, padmode=PAD_PKCS5)

return binascii.b2a_hex(en)

def des_descrypt(s):

“”“

DES 解密

:param s: 加密后的字符串,16進(jìn)制

:return: 解密后的字符串

”“”

secret_key = key_

iv = secret_key

k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)

de = k.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)

return de

客戶端部分:

循環(huán)發(fā)送字符串給服務(wù)器。取‘close_’作為關(guān)閉連接的保留字。

import socket

from mydes import des_descrypt, des_encrypt

from tkinter.filedialog import askopenfilename

if __name__ == ‘__main__’:

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

s.connect((‘127.0.0.1’, 8001))

print(‘連接服務(wù)器成功’)

while True:

ch = input(‘1.發(fā)送字符串 2.發(fā)送文件 3.退出\n請選擇想要使用的功能:’)

if ch == ‘1’:

str_ = input(‘請輸入要傳輸?shù)膬?nèi)容:’)

elif ch == ‘2’:

filename = askopenfilename()

with open(filename, ‘r’, encoding=‘utf-8’) as f:

str_ = f.read()

elif ch == ‘3’:

str_ = ‘close_’

str_ = des_encrypt(str_)

s.sendall(str_)

break

else:

print(‘無該選項(xiàng),請重新輸入’)

str_ = des_encrypt(str_)

# print(type(str_))

s.sendall(str_)

data = s.recv(1024)

data = des_descrypt(data)

print(data.decode())

s.close()

print(‘連接已關(guān)閉’)

服務(wù)器部分:

循環(huán)接收客戶端發(fā)送的數(shù)據(jù),并寫入文件中。取‘close_’作為關(guān)閉連接的保留字。

import socket

from mydes import des_descrypt, des_encrypt

if __name__ == ‘__main__’:

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

s.bind((‘127.0.0.1’, 8001))

print(‘服務(wù)器已創(chuàng)建,正在監(jiān)聽中。..’)

s.listen()

conn, address = s.accept()

while True:

data = conn.recv(1024)

data = des_descrypt(data)

# print(data, type(data))

if data == b‘close_’:

break

else:

with open(‘received’, ‘wb’) as f:

f.write(data)

str_ = ‘服務(wù)器已接收:’+str(data)

str_ = des_encrypt(str_.encode())

conn.sendall(str_)

print(‘接收數(shù)據(jù):’, data.decode(), ‘\n已寫入received.txt文件中’)

s.close()

print(‘服務(wù)器關(guān)閉’)

(4)程序結(jié)果

客戶端:

發(fā)送字符串:

pYYBAGJEBTqAFNvpAACUbGDumuk707.png

發(fā)送文件

pYYBAGJEBUOARje3AAO3NxS4ZAE036.png

結(jié)束連接

pYYBAGJEBU2AHG0HAADivBd--cw344.png

服務(wù)器:

pYYBAGJEBVaAUKpUAACXU-zdY10605.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 程序設(shè)計(jì)
    +關(guān)注

    關(guān)注

    3

    文章

    261

    瀏覽量

    30466
  • 語言編程
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    9948
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4808

    瀏覽量

    85053
收藏 人收藏

    評論

    相關(guān)推薦

    ID讀卡器Python程序開發(fā)

    液顯ID讀卡器UDP協(xié)議開發(fā)Python程序。代碼如下: ? # pip install netifacesimport subprocessimport structimport
    的頭像 發(fā)表于 01-10 16:05 ?123次閱讀

    在RK3568教學(xué)實(shí)驗(yàn)箱上實(shí)現(xiàn)基于YOLOV5的算法物體識(shí)別案例詳解

    )編寫 Python 腳本進(jìn)行目標(biāo)檢測 編寫一個(gè) Python 腳本來加載模型并對圖像或視頻進(jìn)行目標(biāo)檢測。 、操作現(xiàn)象 實(shí)驗(yàn)設(shè)備 本實(shí)驗(yàn)
    發(fā)表于 12-03 14:56

    第5章 MATLAB程序設(shè)計(jì).ppt

    第5章 MATLAB程序設(shè)計(jì)
    發(fā)表于 10-24 16:40 ?0次下載

    TMS320DM6441功耗摘要應(yīng)用程序報(bào)告

    電子發(fā)燒友網(wǎng)站提供《TMS320DM6441功耗摘要應(yīng)用程序報(bào)告.pdf》資料免費(fèi)下載
    發(fā)表于 10-15 11:45 ?0次下載
    TMS320DM6441功耗摘要應(yīng)用<b class='flag-5'>程序</b><b class='flag-5'>報(bào)告</b>

    加法運(yùn)放電路實(shí)驗(yàn)報(bào)告數(shù)據(jù)分析

    加法運(yùn)放電路實(shí)驗(yàn)報(bào)告的數(shù)據(jù)分析主要包括對實(shí)驗(yàn)結(jié)果的觀察、與理論值的對比以及誤差原因的分析。以下是一個(gè)基于常見加法運(yùn)放電路實(shí)驗(yàn)的數(shù)據(jù)分析示例: 一、實(shí)驗(yàn)目的與原理
    的頭像 發(fā)表于 09-03 10:03 ?1022次閱讀

    WLAN層組網(wǎng)實(shí)驗(yàn)解析

    最簡單的WLAN層組網(wǎng)實(shí)驗(yàn)
    的頭像 發(fā)表于 08-14 17:55 ?524次閱讀
    WLAN<b class='flag-5'>三</b>層組網(wǎng)<b class='flag-5'>實(shí)驗(yàn)</b>解析

    Python建模算法與應(yīng)用

    上成為理想的腳本語言,特別適用于快速的應(yīng)用程序開發(fā)。本文將詳細(xì)介紹Python在建模算法中的應(yīng)用,包括常見的建模算法、Python在建模中的優(yōu)勢、常用庫以及實(shí)際案例。
    的頭像 發(fā)表于 07-24 10:41 ?663次閱讀

    python訓(xùn)練出的模型怎么調(diào)用

    Python中,訓(xùn)練出的模型可以通過多種方式進(jìn)行調(diào)用。 1. 模型保存與加載 在Python中,訓(xùn)練好的模型需要被保存,以便在其他程序或會(huì)話中使用。以下是一些常用的模型保存和加載方法。 1.1
    的頭像 發(fā)表于 07-11 10:15 ?2289次閱讀

    最簡單的C程序設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《最簡單的C程序設(shè)計(jì).pptx》資料免費(fèi)下載
    發(fā)表于 05-28 16:41 ?10次下載

    算法-程序設(shè)計(jì)的靈魂

    電子發(fā)燒友網(wǎng)站提供《算法-程序設(shè)計(jì)的靈魂.pptx》資料免費(fèi)下載
    發(fā)表于 05-28 16:39 ?3次下載

    程序設(shè)計(jì)基礎(chǔ)教程

    電子發(fā)燒友網(wǎng)站提供《程序設(shè)計(jì)基礎(chǔ)教程.pptx》資料免費(fèi)下載
    發(fā)表于 05-28 16:37 ?1次下載

    DSP軟件 MATLAB仿真實(shí)驗(yàn)報(bào)告

    電子發(fā)燒友網(wǎng)站提供《DSP軟件 MATLAB仿真實(shí)驗(yàn)報(bào)告.pdf》資料免費(fèi)下載
    發(fā)表于 03-24 09:49 ?13次下載

    愛立信消費(fèi)者實(shí)驗(yàn)報(bào)告發(fā)布

    近日,愛立信發(fā)布了最新一期《愛立信消費(fèi)者實(shí)驗(yàn)報(bào)告》,該報(bào)告首次在全球范圍內(nèi)對消費(fèi)者對5G固定無線接入(FWA)的看法進(jìn)行了深入調(diào)查。該研究覆蓋了19個(gè)國家,代表了12億人居住區(qū)域的3.7億個(gè)家庭,為運(yùn)營商提供了寶貴的洞察和策略
    的頭像 發(fā)表于 03-06 09:19 ?794次閱讀

    Python:從串口讀取數(shù)據(jù)并以16進(jìn)制格式展示

    本文凌順實(shí)驗(yàn)室(lingshunlab.com)簡單實(shí)現(xiàn)Python讀取串口數(shù)據(jù),并且按16進(jìn)制格式顯示出來。
    的頭像 發(fā)表于 03-05 14:25 ?1204次閱讀
    <b class='flag-5'>Python</b>:從串口讀取數(shù)據(jù)并以16進(jìn)制格式展示

    基于Python的地圖繪制教程

    本文將介紹通過Python繪制地形圖的方法,所需第Python相關(guān)模塊包括 rasterio、geopandas、cartopy 等,可通過 pip 等方式安裝。
    的頭像 發(fā)表于 02-26 09:53 ?1322次閱讀
    基于<b class='flag-5'>Python</b>的地圖繪制教程