日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

《Python程序設計》實驗三報告

li5236 ? 來源:博客園 ? 作者:博客園 ? 2022-03-30 15:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.實驗內容

創(chuàng)建服務端和客戶端,服務端在特定端口監(jiān)聽多個客戶請求??蛻舳撕头斩送ㄟ^Socket套接字(TCP/UDP)進行通信

要求:

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

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

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

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

2. 實驗過程及結果

(1)設計思路

該實驗目標是制作一個基于socket的通訊器,根據之前課上學習的內容及課后作業(yè),本次實驗不難完成。

加密上選擇的是基于pyDes的CBC模式DES加密,實現(xiàn)了客服端與服務器的雙向加密通信。基于Python標準庫tkinter,實現(xiàn)了可視化選擇目標文件的功能。但由于沒有具體實現(xiàn)tkinter窗體(極其不標準的使用方法),導致使用該功能后會有一個無內容的tkinter窗體殘留,雖然不影響總體使用,但對程序的完成性和一致性有所破壞。

(2)主要代碼介紹

部分代碼有參考。

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

加解密部分:

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

from pyDes import des, CBC, PAD_PKCS5

import binascii

key_ = ‘12345675’

def des_encrypt(s):

“”“

DES 加密

:param s: 原始字符串

:return: 加密后字符串,16進制

”“”

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進制

: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ā)送字符串給服務器。取‘close_’作為關閉連接的保留字。

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(‘連接服務器成功’)

while True:

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

if ch == ‘1’:

str_ = input(‘請輸入要傳輸?shù)膬热荩骸?/p>

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(‘無該選項,請重新輸入’)

str_ = des_encrypt(str_)

# print(type(str_))

s.sendall(str_)

data = s.recv(1024)

data = des_descrypt(data)

print(data.decode())

s.close()

print(‘連接已關閉’)

服務器部分:

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

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(‘服務器已創(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_ = ‘服務器已接收:’+str(data)

str_ = des_encrypt(str_.encode())

conn.sendall(str_)

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

s.close()

print(‘服務器關閉’)

(4)程序結果

客戶端:

發(fā)送字符串:

pYYBAGJEBTqAFNvpAACUbGDumuk707.png

發(fā)送文件

pYYBAGJEBUOARje3AAO3NxS4ZAE036.png

結束連接

pYYBAGJEBU2AHG0HAADivBd--cw344.png

服務器:

pYYBAGJEBVaAUKpUAACXU-zdY10605.png

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

    關注

    3

    文章

    263

    瀏覽量

    31789
  • 語言編程
    +關注

    關注

    0

    文章

    23

    瀏覽量

    10146
  • python
    +關注

    關注

    58

    文章

    4889

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用PYTHON進行的跨平臺仿真

    內部的解決方案,而且還允許跨平臺模擬,以從其他程序或編程語言獲益,并結合熟悉物理光學特性的VirtualLab Fusion,從而擴展模擬、優(yōu)化、設計和后處理的選項。 因此,我們正在深入研究
    發(fā)表于 04-02 08:21

    [VirtualLab] 使用Python運行VirtualLab Fusion光學仿真

    摘要 VirtualLab Fusion允許Python外部訪問其建模技術、求解器和結果。這個用例介紹了一種使用路徑變量和Visual Studio代碼將Python連接到VirtualLab
    發(fā)表于 03-31 09:39

    請問單片機開發(fā)的程序設計語言主要有哪幾種?

    單片機開發(fā)的程序設計語言主要有哪幾種?
    發(fā)表于 01-14 08:29

    沒有專利的opencv-python 版本

    所有 官方發(fā)布的 opencv-python 核心版本(無 contrib 擴展)都無專利風險——專利問題僅存在于 opencv-contrib-python 擴展模塊中的少數(shù)算法(如早期 SIFT
    發(fā)表于 12-13 12:37

    LABVIEW 2023 Q1調用python后一直報錯1671

    LABVIEW 2023Q1調用python后一直報錯1671報錯信息:PythonNode_AddTwoDoubles.vi中的打開Python會話Python returned
    發(fā)表于 11-12 09:51

    termux如何搭建python游戲

    termux如何搭建python游戲 Termux搭建Python游戲開發(fā)環(huán)境的完整指南 一、Termux基礎環(huán)境準備 Termux是一款無需root即可在安卓設備上運行的Linux終端
    發(fā)表于 08-29 07:06

    挖到寶了!人工智能綜合實驗箱,高校新工科的寶藏神器

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

    挖到寶了!人工智能綜合實驗箱,高校新工科的寶藏神器

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

    挖到寶了!比鄰星人工智能綜合實驗箱,高校新工科的寶藏神器!

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

    天合跟蹤獲得DNV第方風洞測試審查報告

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

    委托測試報告和型式檢驗報告什么區(qū)別

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

    跟老齊學Python:從入門到精通

    礎的學習者介紹一門時下比較流行、并且用途比較廣泛的編程語言,所以,本書讀起來不晦澀,并且在其中穿插了很多貌似與Python 編程無關,但與學習者未來程序員職業(yè)生涯有關的內容。 獲取完整文檔資料可下載附件哦!?。?! 如果內容有幫助可以關注、點贊、評論支持一下哦~
    發(fā)表于 06-03 16:10

    基于STM32 人群定位、調速智能風扇設計(程序、設計報告、視頻演示)

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

    基于STM32 人群定位、調速智能風扇設計(程序、設計報告、視頻演示)

    基于STM32 人群定位、調速智能風扇設計(程序、設計報告、視頻演示)項目下載! 純分享帖,需要者可點擊附件免費獲取完整資料~~~【免責聲明】本文系網絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內容!
    發(fā)表于 05-23 20:35

    程序設計與數(shù)據結構

    程序設計與數(shù)據結構》重點闡述了大方向內容: 1. C語言學習中的痛點:針對當前工程師在C語言學習中的痛點,如指針函數(shù)與函數(shù)指針,如何靈活應用結構體等。從變量的要素(變量的類型,變量的值和變量
    發(fā)表于 05-13 16:45
    浑源县| 石家庄市| 广南县| 额济纳旗| 桐柏县| 梁山县| 宜章县| 梅河口市| 海门市| 白河县| 安西县| 闵行区| 虹口区| 淄博市| 芮城县| 高雄县| 广宁县| 宝清县| 旬阳县| 夏河县| 昂仁县| 那曲县| 姚安县| 福安市| 西贡区| 乳源| 商城县| 原平市| 双辽市| 海阳市| 江永县| 肇东市| 黄浦区| 博野县| 新密市| 上栗县| 柳河县| 丹巴县| 祁东县| 嘉黎县| 洮南市|