国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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擁有這種單獨起一個服務器監聽端口的能力,用標準庫的wsgiref就行。 from wsgiref.simple_server import make_server def simple_app(environ, start_response): status = '200 OK' r
推薦度:
導讀嘗試用最短的Python代碼來實現服務器和代理服務器:一個最簡單的服務器 Python擁有這種單獨起一個服務器監聽端口的能力,用標準庫的wsgiref就行。 from wsgiref.simple_server import make_server def simple_app(environ, start_response): status = '200 OK' r
一個最簡單的服務器
Python擁有這種單獨起一個服務器監聽端口的能力,用標準庫的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端口轉發的,但是我沒有從機器A連接ssh到B的權限。于是就自己用Python寫一個。
原理很簡單。
1.開一個socket server監聽連接請求
2.每接受一個客戶端的連接請求,就往要轉發的地址建一條連接請求。即client->proxy->forward。proxy既是socket服務端(監聽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)#轉發的地址 
 
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()#代理服務器監聽的地址 
 except KeyboardInterrupt: 
 sys.exit(1) 

效果截圖如下。

2016623145635171.jpg (574×128)

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

文檔

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

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

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 成人看片黄a毛片 | 一区二区三区四区视频 | 欧美日韩网址 | 唯美清纯另类亚洲 | 日韩成人国产精品视频 | 久久se精品一区二区国产 | 台湾一级毛片永久免费 | 日韩啪 | 国产欧美日本在线 | 久久久成人影院 | 久久国产精品免费一区二区三区 | 欧美色图亚洲激情 | 精品久久久久久久中文字幕 | 国产亚洲欧美日韩综合另类 | 在线观看色 | 制服丝袜中文在线 | xxx欧美888| 亚洲国产精久久久久久久 | 国产欧美日韩高清专区手机版 | 国产最新精品视频 | 精品久久久久久久中文字幕 | 国产精品网站在线进入 | 亚洲天堂一区二区三区 | 欧区一欧区二欧区三免费 | 看全黄大色大黄美女 | 亚洲国产成人久久综合碰 | 国产成人精品曰本亚洲 | 欧美一区二区在线播放 | 最新国产精品视频免费看 | 在线视频观看国产 | 精品视频在线观看视频免费视频 | 欧美亚洲综合另类 | 国产精品特级毛片一区二区三区 | 日本久操 | 欧美中文在线 | 久久精品一区二区国产 | 欧美高清在线精品一区二区不卡 | 欧美区一区 | 久久久久亚洲精品成人网小说 | 一区二区三区国产 | 激情欧美一区二区三区中文字幕 |