在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

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

1.實驗內容

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

要求:

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

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

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

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

2. 實驗過程及結果

(1)設計思路

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

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

(2)主要代碼介紹

部分代碼有參考。

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

加解密部分:

基于pyDes庫實現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

客戶端部分:

循環發送字符串給服務器。取‘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.發送字符串 2.發送文件 3.退出\n請選擇想要使用的功能:’)

if ch == ‘1’:

str_ = input(‘請輸入要傳輸的內容:’)

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(‘連接已關閉’)

服務器部分:

循環接收客戶端發送的數據,并寫入文件中。取‘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(‘服務器已創建,正在監聽中。..’)

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(‘接收數據:’, data.decode(), ‘\n已寫入received.txt文件中’)

s.close()

print(‘服務器關閉’)

(4)程序結果

客戶端:

發送字符串:

pYYBAGJEBTqAFNvpAACUbGDumuk707.png

發送文件

pYYBAGJEBUOARje3AAO3NxS4ZAE036.png

結束連接

pYYBAGJEBU2AHG0HAADivBd--cw344.png

服務器:

pYYBAGJEBVaAUKpUAACXU-zdY10605.png

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

    關注

    3

    文章

    262

    瀏覽量

    30878
  • 語言編程
    +關注

    關注

    0

    文章

    23

    瀏覽量

    10024
  • python
    +關注

    關注

    56

    文章

    4825

    瀏覽量

    86295
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    程序設計與數據結構

    程序設計與數據結構》重點闡述了大方向內容: 1. C語言學習中的痛點:針對當前工程師在C語言學習中的痛點,如指針函數與函數指針,如何靈活應用結構體等。從變量的要素(變量的類型,變量的值和變量
    發表于 05-13 16:45

    零基礎入門:如何在樹莓派上編寫和運行Python程序

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

    是否可以使用OpenVINO?部署管理器在部署機器上運行Python應用程序

    使用 OpenVINO?部署管理器創建運行時軟件包。 將運行時包轉移到部署機器中。 無法確定是否可以在部署機器上運行 Python 應用程序,而無需安裝OpenVINO? Toolkit 和 Python
    發表于 03-05 08:16

    有沒有什么方案能實現直接用matlab或python調用D4100_usb.dll?

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

    Python Connector for InterBase連接解決方案

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

    ID讀卡器Python程序開發

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

    在RK3568教學實驗箱上實現基于YOLOV5的算法物體識別案例詳解

    )編寫 Python 腳本進行目標檢測 編寫一個 Python 腳本來加載模型并對圖像或視頻進行目標檢測。 、操作現象 實驗設備 本實驗
    發表于 12-03 14:56

    第5章 MATLAB程序設計.ppt

    第5章 MATLAB程序設計
    發表于 10-24 16:40 ?1次下載

    TMS320DM6441功耗摘要應用程序報告

    電子發燒友網站提供《TMS320DM6441功耗摘要應用程序報告.pdf》資料免費下載
    發表于 10-15 11:45 ?0次下載
    TMS320DM6441功耗摘要應用<b class='flag-5'>程序</b><b class='flag-5'>報告</b>

    深度探索RK3568嵌入式教學平臺實戰案例:設備驅動開發實驗

    一、產品簡介TL3568-PlusTEB人工智能實驗箱國產高性能處理器64位4核低功耗2.0GHz超高主頻1T超高算力NPU兼容鴻蒙等國產操作系統二、實驗目的1、熟悉基本字符設備的驅動程序設計;2
    的頭像 發表于 09-24 08:05 ?823次閱讀
    深度探索RK3568嵌入式教學平臺實戰案例:設備驅動開發<b class='flag-5'>實驗</b>

    加法運放電路實驗報告數據分析

    加法運放電路實驗報告的數據分析主要包括對實驗結果的觀察、與理論值的對比以及誤差原因的分析。以下是一個基于常見加法運放電路實驗的數據分析示例: 一、實驗目的與原理
    的頭像 發表于 09-03 10:03 ?1738次閱讀

    WLAN層組網實驗解析

    最簡單的WLAN層組網實驗
    的頭像 發表于 08-14 17:55 ?768次閱讀
    WLAN<b class='flag-5'>三</b>層組網<b class='flag-5'>實驗</b>解析

    Python建模算法與應用

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

    python訓練出的模型怎么調用

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

    國產Cortex-A55人工智能教學實驗箱_基于Python機械臂跳舞實驗案例分享

    又不必要。 從力學的角度分析,物件在空間只有6個自由度。因此為抓取和傳送在空間不同位置和方位物件,傳送機構也應具有6個自由度。 實驗程序流程 1、創建機械臂對象 2、機械臂循環跳舞:讓舵機復位歸中 、操作現象 如視頻所示
    發表于 06-28 14:37
    主站蜘蛛池模板: 人人插人人爽 | 日本黄色大片免费观看 | 免费人成在线观看网站品爱网 | 亚洲射图| 日本视频一区二区三区 | 88av影院| 色多多www网站 | 国产午夜视频在线观看网站 | 中国人69xxx大全| 色优优| 天天爱天天射 | 中文字幕视频一区二区 | aa在线播放 | 男男扒开后菊惩罚 | 国产a三级三级三级 | 黄色在线观看网址 | 美女扒开腿让男生桶爽网站 | 视频一区二区三区在线观看 | 免费一级特黄3大片视频 | 性xxxx奶大欧美高清 | 夜夜操天天 | 免费看一毛一级毛片视频 | 中文天堂最新版www官网在线 | 国产午夜精品福利久久 | 四虎东方va私人影库在线观看 | 激情五月综合婷婷 | 亚洲国产成人久久一区久久 | 免费欧洲美女与动zooz | 精品一区二区三区18 | 在线天堂在线 | 国产乱人视频免费播放 | 久久精品大全 | 美女视频大全美女视频黄 | 天天摸日日舔 | 成人99国产精品一级毛片 | 污污的黄色小说 | 野外啪啪抽搐一进一出 | 色资源在线观看 | 欧美日韩不卡码一区二区三区 | 午夜免费的国产片在线观看 | 亚洲乱亚洲乱妇41p 亚洲乱亚洲乱妇41p国产成人 |