2010-11-28 69 views
0
瓶頸

我一直在使用的urllib implmented一個TCP給HTTP代理服務器,什麼是TCP2HTTP(urllib的)代理ThreadingTcpServer的在Python

,其中轉換的TCP請求的HTTP請求到特定服務器,

這件事情是這樣的:

class RequestHandler(socketserver.BaseRequestHandler): 

    def handle(self): 
     size, = struct.unpack('L', s.recv(4)) 
     data = s.recv(size) 
     assert len(data) == size 
     res = urllib.urlopen('http://myserver.com/', encode_data(data)).read() 
     s.sendall(res) 
     s.shutdown(SHUT_WR) 

if __name__ == '__main__': 
    address = ('', 8080) 
    server = socketserver.ThreadingTCPServer(address, RequestHandler) 
    server.serve_forever()   

卻成了許多連接速度很慢(不太多:20)在同一時間。

瓶頸在哪裏?它與GIL問題有關嗎?

BTW:我在Windows,以便ForkingMixin是不是可以在這裏

+0

@ user522809:不超過TCP協議HTTP協議。或者說,HTTP將是一個應用程序級協議。 – pyfunc 2010-11-28 07:49:56

+0

@pyfunc:不是一般的TCP2HTTP代理。它只將某些特定的TCP請求轉換爲相應的HTTP請求。你可以說HTTP在這裏用作應用程序級協議。 – user522809 2010-11-28 07:54:17

回答