18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(pí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 ? 來(lái)源:博客園 ? 作者:博客園 ? 2022-03-30 15:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

要求:

(1)創(chuàng)建服務(wù)端和客戶端,選擇一個(gè)通信端口,用Python語(yǔ)言編程實(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)庫(kù)tkinter,實(shí)現(xiàn)了可視化選擇目標(biāo)文件的功能。但由于沒有具體實(shí)現(xiàn)tkinter窗體(極其不標(biāo)準(zhǔn)的使用方法),導(dǎo)致使用該功能后會(huì)有一個(gè)無(wú)內(nèi)容的tkinter窗體殘留,雖然不影響總體使用,但對(duì)程序的完成性和一致性有所破壞。

(2)主要代碼介紹

部分代碼有參考。

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

加解密部分:

基于pyDes庫(kù)實(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請(qǐng)選擇想要使用的功能:’)

if ch == ‘1’:

str_ = input(‘請(qǐng)輸入要傳輸?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(‘無(wú)該選項(xiàng),請(qǐ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)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 程序設(shè)計(jì)
    +關(guān)注

    關(guān)注

    3

    文章

    263

    瀏覽量

    31492
  • 語(yǔ)言編程
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    10099
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4849

    瀏覽量

    89225
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    挖到寶了!人工智能綜合實(shí)驗(yàn)箱,高校新工科的寶藏神器

    這款實(shí)驗(yàn)箱涵蓋了9門課程,包括Python程序設(shè)計(jì)、機(jī)器學(xué)習(xí)、機(jī)器視覺、深度學(xué)習(xí)、深度視覺、數(shù)字圖像處理、嵌入式系統(tǒng)及應(yīng)用、語(yǔ)音識(shí)別與傳感器、基于視覺的機(jī)器人應(yīng)用。
    的頭像 發(fā)表于 08-07 14:51 ?431次閱讀
    挖到寶了!人工智能綜合<b class='flag-5'>實(shí)驗(yàn)</b>箱,高校新工科的寶藏神器

    挖到寶了!人工智能綜合實(shí)驗(yàn)箱,高校新工科的寶藏神器

    和深度至關(guān)重要。這款實(shí)驗(yàn)箱涵蓋了9門課程,包括Python程序設(shè)計(jì)、機(jī)器學(xué)習(xí)、機(jī)器視覺、深度學(xué)習(xí)、深度視覺、數(shù)字圖像處理、嵌入式系統(tǒng)及應(yīng)用、語(yǔ)音識(shí)別與傳感器、基于視覺的機(jī)器人應(yīng)用。從基礎(chǔ)的程序
    發(fā)表于 08-07 14:30

    挖到寶了!比鄰星人工智能綜合實(shí)驗(yàn)箱,高校新工科的寶藏神器!

    和深度至關(guān)重要。這款實(shí)驗(yàn)箱涵蓋了9門課程,包括Python程序設(shè)計(jì)、機(jī)器學(xué)習(xí)、機(jī)器視覺、深度學(xué)習(xí)、深度視覺、數(shù)字圖像處理、嵌入式系統(tǒng)及應(yīng)用、語(yǔ)音識(shí)別與傳感器、基于視覺的機(jī)器人應(yīng)用。從基礎(chǔ)的程序
    發(fā)表于 08-07 14:23

    天合跟蹤獲得DNV第方風(fēng)洞測(cè)試審查報(bào)告

    近日, 天合跟蹤獲得DNV頒發(fā)的中國(guó)支架行業(yè)首張風(fēng)洞實(shí)驗(yàn)方審查報(bào)告。該風(fēng)洞報(bào)告由天合跟蹤與同濟(jì)大學(xué)合作,針對(duì)開拓者1P跟蹤支架進(jìn)行了全新的剛性模型測(cè)壓試驗(yàn)和先進(jìn)動(dòng)力學(xué)分析研究,并由
    的頭像 發(fā)表于 07-08 17:35 ?566次閱讀

    委托測(cè)試報(bào)告和型式檢驗(yàn)報(bào)告什么區(qū)別

    委托測(cè)試報(bào)告和型式檢驗(yàn)報(bào)告是兩個(gè)不同的概念,它們?cè)谡J(rèn)證和合規(guī)過程中都有重要作用,但它們的內(nèi)容、使用范圍和法律效力有所不同。一、委托測(cè)試報(bào)告委托測(cè)試報(bào)告是由設(shè)備制造商或產(chǎn)品進(jìn)口商委托第
    的頭像 發(fā)表于 07-03 11:43 ?1012次閱讀
    委托測(cè)試<b class='flag-5'>報(bào)告</b>和型式檢驗(yàn)<b class='flag-5'>報(bào)告</b>什么區(qū)別

    基于STM32 人群定位、調(diào)速智能風(fēng)扇設(shè)計(jì)(程序、設(shè)計(jì)報(bào)告、視頻演示)

    基于STM32 人群定位、調(diào)速智能風(fēng)扇設(shè)計(jì)(程序、設(shè)計(jì)報(bào)告、視頻演示),有需要的同學(xué)推薦下載!
    發(fā)表于 05-28 21:34

    程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)

    程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》重點(diǎn)闡述了大方向內(nèi)容: 1. C語(yǔ)言學(xué)習(xí)中的痛點(diǎn):針對(duì)當(dāng)前工程師在C語(yǔ)言學(xué)習(xí)中的痛點(diǎn),如指針函數(shù)與函數(shù)指針,如何靈活應(yīng)用結(jié)構(gòu)體等。從變量的要素(變量的類型,變量的值和變量
    發(fā)表于 05-13 16:45

    ?如何在虛擬環(huán)境中使用 Python,提升你的開發(fā)體驗(yàn)~

    。RaspberryPiOS預(yù)裝了Python3。干擾系統(tǒng)Python的安裝可能會(huì)給你的操作系統(tǒng)帶來(lái)問題。安裝第Python庫(kù)時(shí),請(qǐng)務(wù)必使用正確的包管理工具。在Lin
    的頭像 發(fā)表于 03-25 09:34 ?551次閱讀
    ?如何在虛擬環(huán)境中使用 <b class='flag-5'>Python</b>,提升你的開發(fā)體驗(yàn)~

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    在這篇文章中,我將為你簡(jiǎn)要介紹Python程序是什么、Python程序可以用來(lái)做什么,以及如何在RaspberryPi上編寫和運(yùn)行一個(gè)簡(jiǎn)單的Pyth
    的頭像 發(fā)表于 03-25 09:27 ?1314次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行<b class='flag-5'>Python</b><b class='flag-5'>程序</b>?

    是否可以使用OpenVINO?部署管理器在部署機(jī)器上運(yùn)行Python應(yīng)用程序?

    使用 OpenVINO?部署管理器創(chuàng)建運(yùn)行時(shí)軟件包。 將運(yùn)行時(shí)包轉(zhuǎn)移到部署機(jī)器中。 無(wú)法確定是否可以在部署機(jī)器上運(yùn)行 Python 應(yīng)用程序,而無(wú)需安裝OpenVINO? Toolkit 和 Python。
    發(fā)表于 03-05 08:16

    有沒有什么方案能實(shí)現(xiàn)直接用matlab或python調(diào)用D4100_usb.dll?

    是32位程序而我的電腦是64位的。 由于實(shí)驗(yàn)中主要用matlab編程,使用C++程序很不方便,如果能直接用matlab或python調(diào)用D4100_usb.dll就會(huì)好很多。 因此,我
    發(fā)表于 02-27 06:59

    Python Connector for InterBase連接解決方案

    適用于 InterBase 的 Python 連接器 Python Connector for InterBase 是一種可靠的連接解決方案,用于從 Python 應(yīng)用程序訪問 Int
    的頭像 發(fā)表于 01-22 14:34 ?627次閱讀

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

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

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

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

    國(guó)產(chǎn)Cortex-A55實(shí)驗(yàn)箱操作案例分享:LED程序開發(fā)

    一、實(shí)驗(yàn)目的(1)熟悉Qt程序的開發(fā)流程。(2)掌握QtCreator的基礎(chǔ)開發(fā)使用。(3)通過編寫Qt程序實(shí)現(xiàn)LED控制的顯示界面。二、實(shí)驗(yàn)原理Qt工程創(chuàng)建Qt工程的創(chuàng)建步驟包括:(
    的頭像 發(fā)表于 11-01 08:10 ?899次閱讀
    國(guó)產(chǎn)Cortex-A55<b class='flag-5'>實(shí)驗(yàn)</b>箱操作案例分享:LED<b class='flag-5'>程序</b>開發(fā)