<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        嘗試用最短的Python代碼來實現服務器和代理服務器

        來源:懂視網 責編:小采 時間:2020-11-27 14:29:14
        文檔

        嘗試用最短的Python代碼來實現服務器和代理服務器

        嘗試用最短的Python代碼來實現服務器和代理服務器:一個最簡單的服務器 Python擁有這種單獨起一個服務器監(jiān)聽端口的能力,用標準庫的wsgiref就行。 from wsgiref.simple_server import make_server def simple_app(environ, start_response): status = '200 OK' r
        推薦度:
        導讀嘗試用最短的Python代碼來實現服務器和代理服務器:一個最簡單的服務器 Python擁有這種單獨起一個服務器監(jiān)聽端口的能力,用標準庫的wsgiref就行。 from wsgiref.simple_server import make_server def simple_app(environ, start_response): status = '200 OK' r
        一個最簡單的服務器
        Python擁有這種單獨起一個服務器監(jiān)聽端口的能力,用標準庫的wsgiref就行。

        from wsgiref.simple_server import make_server 
        def simple_app(environ, start_response): 
         status = '200 OK' 
         response_headers = [('Content-type','text/plain')] 
         start_response(status, response_headers) 
         return ['Hello world!
        '] 
        httpd = make_server('', 80, simple_app) 
        httpd.serve_forever() 
        

        2016623145600293.jpg (247×67)

        50行代碼實現代理服務器
        之前遇到一個場景是這樣的:
        我在自己的電腦上需要用mongodb圖形客戶端,但是mongodb的服務器地址沒有對外網開放,只能通過先登錄主機A,然后再從A連接mongodb服務器B。
        本來想通過ssh端口轉發(fā)的,但是我沒有從機器A連接ssh到B的權限。于是就自己用Python寫一個。
        原理很簡單。
        1.開一個socket server監(jiān)聽連接請求
        2.每接受一個客戶端的連接請求,就往要轉發(fā)的地址建一條連接請求。即client->proxy->forward。proxy既是socket服務端(監(jiān)聽client),也是socket客戶端(往forward請求)。
        3.把client->proxy和proxy->forward這2條socket用字典給綁定起來。
        4.通過這個映射的字典把send/recv到的數據原封不動的傳遞
        下面上代碼。

        #coding=utf-8 
        import socket 
        import select 
        import sys 
         
        to_addr = ('xxx.xxx.xx.xxx', 10000)#轉發(fā)的地址 
         
        class Proxy: 
         def __init__(self, addr): 
         self.proxy = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
         self.proxy.bind(addr) 
         self.proxy.listen(10) 
         self.inputs = [self.proxy] 
         self.route = {} 
         
         def serve_forever(self): 
         print 'proxy listen...' 
         while 1: 
         readable, _, _ = select.select(self.inputs, [], []) 
         for self.sock in readable: 
         if self.sock == self.proxy: 
         self.on_join() 
         else: 
         data = self.sock.recv(8096) 
         if not data: 
         self.on_quit() 
         else: 
         self.route[self.sock].send(data) 
         
         def on_join(self): 
         client, addr = self.proxy.accept() 
         print addr,'connect' 
         forward = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
         forward.connect(to_addr) 
         self.inputs += [client, forward] 
         self.route[client] = forward 
         self.route[forward] = client 
         
         def on_quit(self): 
         for s in self.sock, self.route[self.sock]: 
         self.inputs.remove(s) 
         del self.route[s] 
         s.close() 
         
        if __name__ == '__main__': 
         try: 
         Proxy(('',12345)).serve_forever()#代理服務器監(jiān)聽的地址 
         except KeyboardInterrupt: 
         sys.exit(1) 
        

        效果截圖如下。

        2016623145635171.jpg (574×128)

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        嘗試用最短的Python代碼來實現服務器和代理服務器

        嘗試用最短的Python代碼來實現服務器和代理服務器:一個最簡單的服務器 Python擁有這種單獨起一個服務器監(jiān)聽端口的能力,用標準庫的wsgiref就行。 from wsgiref.simple_server import make_server def simple_app(environ, start_response): status = '200 OK' r
        推薦度:
        標簽: 代理 服務器 python
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲AV永久无码精品网站在线观看| 亚洲美女在线观看播放| 亚洲av无码无线在线观看| 国产91免费视频| 亚洲午夜精品国产电影在线观看| 最近中文字幕完整版免费高清| 国产V亚洲V天堂无码久久久| 野花香高清视频在线观看免费| 久久久亚洲精品无码| 1000部拍拍拍18免费网站| 亚洲午夜电影一区二区三区| 18禁无遮挡无码网站免费| 亚洲愉拍一区二区三区| 国产青草视频在线观看免费影院| 无码日韩人妻AV一区免费l| 亚洲乱码一区二区三区在线观看 | 婷婷精品国产亚洲AV麻豆不片| 最新国产乱人伦偷精品免费网站| 国产亚洲人成网站观看| 无码人妻精品中文字幕免费| 中文字幕亚洲精品资源网| A在线观看免费网站大全| 亚洲av乱码一区二区三区按摩| 亚洲AV无码乱码在线观看牲色| 中文字幕不卡高清免费| 亚洲国产香蕉碰碰人人| 成年人视频在线观看免费| yellow视频免费看| 久久久久久久亚洲Av无码 | 成年网站免费视频A在线双飞| 亚洲成av人片天堂网无码】| 亚洲最大AV网站在线观看| 91香蕉国产线在线观看免费| 亚洲丶国产丶欧美一区二区三区| 国产黄色一级毛片亚洲黄片大全| 99在线热视频只有精品免费| 福利片免费一区二区三区| 亚洲精品免费视频| 白白国产永久免费视频| 嫩草在线视频www免费看| 亚洲欧美日韩中文高清www777|