版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
socket編程進階Python1.了解Python中socket之簡單的ssh功能
2.掌握Python中socket之簡單的ftp服務器
3.熟悉Python中socketserver的用法
4.實現(xiàn)Python中socketserver的多并發(fā)1、socket之簡單的ssh功能
首先同樣是建立兩個端(服務器端和客戶端)需求是:服務器端需要對客戶端發(fā)送過來的命令進行相應,并將響應內(nèi)容返回給客戶端??此坪芎唵蔚男枨螅侨绾雾憫钚??python官方建議buffer的大小不宜超過8k(8192byte),如果返回的數(shù)據(jù)大于了buffer如何讓客戶端接收完全?信號傳輸過程只能通過byte類型,而命令執(zhí)行過程又需要使用到str,所以在程序中的類型轉(zhuǎn)換也至關(guān)重要。1.服務端在發(fā)送數(shù)據(jù)前先獲得數(shù)據(jù)大小,并發(fā)送給客戶端。2.客戶端先接受數(shù)據(jù)大小,再對根據(jù)數(shù)據(jù)大小接收數(shù)據(jù)。1、socket實現(xiàn)ssh服務編寫好服務端代碼1、socket實現(xiàn)ssh服務編寫好服務端代碼1、socket實現(xiàn)ssh服務編寫好客戶端代碼1、socket實現(xiàn)ssh服務編寫好客戶端代碼1、socket實現(xiàn)ssh服務運行結(jié)果運行一下ipconfig,跟cmd下運行的結(jié)果相同2、socket之簡單的ftp服務器
首先,在用ftp傳輸文件時,有個功能要了解一下:md5,就是一個文件的數(shù)字簽名,我們在傳輸前獲得文件的md5編碼,在傳輸后再獲取編碼,把兩個編碼對比一下可獲得文件的一致性。作為文件校驗的功能使用。2、socket之簡單的ftp服務器
回顧一下hashlib模塊里md5的用法運行結(jié)果:2、socket之簡單的ftp服務器
我們在對文件進行MD5編碼時候,直接把文件用readlines讀出來是不大現(xiàn)實的(數(shù)據(jù)是先讀在內(nèi)存中,小文件沒問題,超過幾個G的文件就把內(nèi)存撐爆了)所以需要用readline把數(shù)據(jù)一行行讀出來,然后不停用update把MD5值更新出來。工作順序ftpserver端1.讀取文件名2.檢測文件是否存在3.打開文件4.檢測文件大小并發(fā)送給客戶端5.發(fā)送文件6.等待客戶端確認7.發(fā)送md5給客戶端??蛻舳?.輸入指令2.對指令解耦并發(fā)送給服務器3.接收文件大小4.建立新的空白文件5.逐行接收文件并生成相應的MD56.接收原文件的MD5,和新文件進行校驗7.關(guān)閉文件2、socket之簡單的ftp服務器
編寫好代碼:ftp_sever端2、socket之簡單的ftp服務器
編寫好代碼:ftp_client端2、socket之簡單的ftp服務器
編寫好代碼:ftp_client端3、socketserver模塊的用法socketserver模塊有四個類1.TCPServerclasssocketserver.TCPServer(server_address,RequestHanddlerClass,bind_and_active=True)2.UDPServerclasssocketserver.UDPServer(server_address,RequestHanddlerClass,bind_and_active=True)3.
UnixStreamServer,類似于TCPServer提供面向數(shù)據(jù)流的套接字連接,但是旨在UNIX平臺上可用;4.
UnixDatagramServer,類似于UDPServer提供面向數(shù)據(jù)報的套接字連接,但是旨在UNIX平臺上可用;其中常用的是前兩個。3、socketserver模塊的用法socketserver模塊有四個類這里引用一下python官網(wǎng)上對SocketServer使用方法的描述
Finally,callserver_close()toclosethesocket
首先,必須創(chuàng)建一個請求處理類,并且這個類要繼承BaseRequestHandler,并且還要重構(gòu)父類里的handle()
handle里處理所有和客戶端的交互
其次,要實例化一個serverclass(四個中的一個,舉例TCPServer),并且把server的ip和第一步創(chuàng)建的請求處理類當作參數(shù)傳遞給TCPServer。
接下來可以調(diào)用server.handle_request()(只處理一個請求)或server.server_forever()(處理多個請求,永遠執(zhí)行)
最終,調(diào)用server_close()關(guān)閉。
3、socketserver模塊的用法現(xiàn)在我們寫一個最簡單的socketserver服務端:3、socketserver模塊的用法現(xiàn)在我們寫一個最簡單的socketserver客戶端:4、socketserver的多并發(fā)最后,我們試一下socketserver的多并發(fā)把TCPServer改成ThreadingTCPServer,就實現(xiàn)了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學信息技術(shù)第三冊 第19課帶變量的過程教學實錄 北京版
- 2023九年級歷史下冊 第一單元 殖民地人民的反抗與資本主義制度的擴展第4課 日本明治維新教學實錄 新人教版
- 六年級兒童節(jié)講話稿10篇
- 銀行的實習報告模板集錦五篇
- 2024六年級英語上冊 Unit 2 School in Canada Lesson 11 Always Do Your Homework教學實錄 冀教版(三起)
- 異位妊娠說課-教學課件
- 老師道歉信范文集合五篇
- 第3課 突破封鎖線(教學實錄)-教學實錄2023-2024學年粵教版(B版)小學信息技術(shù)六年級下冊
- 駕駛員工作述職報告6篇
- 教師學期個人總結(jié)2021匯報【10篇】
- 期末 (試題) -2024-2025學年人教PEP版英語六年級上冊
- 廠內(nèi)電動車安全管理制度
- 幼兒園中班數(shù)學活動《營救汪汪隊》
- 遼寧省2024年中考物理試題【附真題答案】
- 2024年部編新改版語文小學一年級上冊第六單元復習課教案
- 竣工決算工作底稿
- 爐省煤器改造更換施工方案
- DB5334 T 12.3-2024《地理標志證明商標 香格里拉藏香豬》的第3部分飼養(yǎng)管理
- 佛山市2022-2023學年七年級上學期期末考試數(shù)學試題
- 信訪工作條例應知應會考試題庫300題(含答案)
- 公司和酒店住宿協(xié)議合同
評論
0/150
提交評論