版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
socket編程進(jìn)階Python1.了解Python中socket之簡(jiǎn)單的ssh功能
2.掌握Python中socket之簡(jiǎn)單的ftp服務(wù)器
3.熟悉Python中socketserver的用法
4.實(shí)現(xiàn)Python中socketserver的多并發(fā)1、socket之簡(jiǎn)單的ssh功能
首先同樣是建立兩個(gè)端(服務(wù)器端和客戶端)需求是:服務(wù)器端需要對(duì)客戶端發(fā)送過(guò)來(lái)的命令進(jìn)行相應(yīng),并將響應(yīng)內(nèi)容返回給客戶端??此坪芎?jiǎn)單的需求,但是如何響應(yīng)命令行?python官方建議buffer的大小不宜超過(guò)8k(8192byte),如果返回的數(shù)據(jù)大于了buffer如何讓客戶端接收完全?信號(hào)傳輸過(guò)程只能通過(guò)byte類型,而命令執(zhí)行過(guò)程又需要使用到str,所以在程序中的類型轉(zhuǎn)換也至關(guān)重要。1.服務(wù)端在發(fā)送數(shù)據(jù)前先獲得數(shù)據(jù)大小,并發(fā)送給客戶端。2.客戶端先接受數(shù)據(jù)大小,再對(duì)根據(jù)數(shù)據(jù)大小接收數(shù)據(jù)。1、socket實(shí)現(xiàn)ssh服務(wù)編寫好服務(wù)端代碼1、socket實(shí)現(xiàn)ssh服務(wù)編寫好服務(wù)端代碼1、socket實(shí)現(xiàn)ssh服務(wù)編寫好客戶端代碼1、socket實(shí)現(xiàn)ssh服務(wù)編寫好客戶端代碼1、socket實(shí)現(xiàn)ssh服務(wù)運(yùn)行結(jié)果運(yùn)行一下ipconfig,跟cmd下運(yùn)行的結(jié)果相同2、socket之簡(jiǎn)單的ftp服務(wù)器
首先,在用ftp傳輸文件時(shí),有個(gè)功能要了解一下:md5,就是一個(gè)文件的數(shù)字簽名,我們?cè)趥鬏斍矮@得文件的md5編碼,在傳輸后再獲取編碼,把兩個(gè)編碼對(duì)比一下可獲得文件的一致性。作為文件校驗(yàn)的功能使用。2、socket之簡(jiǎn)單的ftp服務(wù)器
回顧一下hashlib模塊里md5的用法運(yùn)行結(jié)果:2、socket之簡(jiǎn)單的ftp服務(wù)器
我們?cè)趯?duì)文件進(jìn)行MD5編碼時(shí)候,直接把文件用readlines讀出來(lái)是不大現(xiàn)實(shí)的(數(shù)據(jù)是先讀在內(nèi)存中,小文件沒(méi)問(wèn)題,超過(guò)幾個(gè)G的文件就把內(nèi)存撐爆了)所以需要用readline把數(shù)據(jù)一行行讀出來(lái),然后不停用update把MD5值更新出來(lái)。工作順序ftpserver端1.讀取文件名2.檢測(cè)文件是否存在3.打開(kāi)文件4.檢測(cè)文件大小并發(fā)送給客戶端5.發(fā)送文件6.等待客戶端確認(rèn)7.發(fā)送md5給客戶端??蛻舳?.輸入指令2.對(duì)指令解耦并發(fā)送給服務(wù)器3.接收文件大小4.建立新的空白文件5.逐行接收文件并生成相應(yīng)的MD56.接收原文件的MD5,和新文件進(jìn)行校驗(yàn)7.關(guān)閉文件2、socket之簡(jiǎn)單的ftp服務(wù)器
編寫好代碼:ftp_sever端2、socket之簡(jiǎn)單的ftp服務(wù)器
編寫好代碼:ftp_client端2、socket之簡(jiǎn)單的ftp服務(wù)器
編寫好代碼:ftp_client端3、socketserver模塊的用法socketserver模塊有四個(gè)類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平臺(tái)上可用;4.
UnixDatagramServer,類似于UDPServer提供面向數(shù)據(jù)報(bào)的套接字連接,但是旨在UNIX平臺(tái)上可用;其中常用的是前兩個(gè)。3、socketserver模塊的用法socketserver模塊有四個(gè)類這里引用一下python官網(wǎng)上對(duì)SocketServer使用方法的描述
Finally,callserver_close()toclosethesocket
首先,必須創(chuàng)建一個(gè)請(qǐng)求處理類,并且這個(gè)類要繼承BaseRequestHandler,并且還要重構(gòu)父類里的handle()
handle里處理所有和客戶端的交互
其次,要實(shí)例化一個(gè)serverclass(四個(gè)中的一個(gè),舉例TCPServer),并且把server的ip和第一步創(chuàng)建的請(qǐng)求處理類當(dāng)作參數(shù)傳遞給TCPServer。
接下來(lái)可以調(diào)用server.handle_request()(只處理一個(gè)請(qǐng)求)或server.server_forever()(處理多個(gè)請(qǐng)求,永遠(yuǎn)執(zhí)行)
最終,調(diào)用server_close()關(guān)閉。
3、socketserver模塊的用法現(xiàn)在我們寫一個(gè)最簡(jiǎn)單的socketserver服務(wù)端:3、socketserver模塊的用法現(xiàn)在我們寫一個(gè)最簡(jiǎn)單的socketserver客戶端:4、socketserver的多并發(fā)最后,我們?cè)囈幌聅ocketserver的多并發(fā)把TCPServer改成ThreadingTCPServer,就實(shí)現(xiàn)了
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年渤海船舶職業(yè)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 寶貝學(xué)常見(jiàn)詞
- 授權(quán)函完整版本
- 二零二五年能源管理服務(wù)簡(jiǎn)易借款合同3篇
- 二零二五年新型電子產(chǎn)品動(dòng)產(chǎn)交易合同2篇
- 2024年河南物流職業(yè)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 2024年阜陽(yáng)市第二人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年阜康準(zhǔn)東石油醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年長(zhǎng)沙現(xiàn)代女子醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2025版高端食品買賣合同及食品安全追溯協(xié)議
- 2023浙江省杭州市中考語(yǔ)文真題試卷和答案
- 銀行防詐騙知識(shí)宣傳
- 【實(shí)戰(zhàn)篇】華為IPD流程的應(yīng)用案例
- spa浴按摩是怎么樣的
- 統(tǒng)編版六年級(jí)語(yǔ)文上冊(cè)專項(xiàng) 專題04標(biāo)點(diǎn)符號(hào)及作用-原卷版+解析
- Book-1-Unit-3-going-positive教學(xué)設(shè)計(jì)文檔
- 績(jī)效管理外文翻譯外文文獻(xiàn)中英翻譯-績(jī)效管理外文文獻(xiàn)
- 建立信息共享和預(yù)警機(jī)制
- 2023年湖北省鄂州市鄂城區(qū)數(shù)學(xué)七年級(jí)第一學(xué)期期末綜合測(cè)試試題含解析
- 并行計(jì)算任務(wù)分配
- JGT129-2017 建筑門窗五金件 滑輪
評(píng)論
0/150
提交評(píng)論