2010-04-15 25 views
2

我有點難倒:我有一個簡單的messenger客戶端程序(純python,套接字),並且我想添加代理支持(http/s,socks) ,但是我對如何去解決這個問題有點困惑。我假設套接字級別的連接將完成到代理服務器,在這一點上,頭文件應包含CONNECT +目標IP(聊天服務器的地址)和身份驗證(如果代理需要的話),然而剩下的是有點超出我。如何處理後續連接,特別是讀/寫等...Python,實現代理支持基於套接字的應用程序(不是urllib2)

是否有任何指導代碼支持實現基於套接字的(tcp)編程在Python中?

謝謝

回答

2

可能使用類似SocksiPy這爲您完成所有的協議細節,將讓你通過SOCKS代理連接,你會沒有呢?

+0

這很好。我能夠整合所有東西,而SocksiPy的代碼正好顯示了在HTTP/SOCKS隧道過程中會發生什麼。我很驚訝我以前沒有找到它,謝謝! – 2010-04-29 14:28:49

0

看一看stunnel

Stunnel的可以讓你通過具有 Stunnel的提供加密, 無需更改守護程序的 代碼,以確保 非SSL的守護進程和協議 (如POP,IMAP,LDAP等)

1

這很簡單 - 在發送HTTP請求:CONNECT example.com:1234 HTTP/1.0\r\nHost: example.com:1234\r\n<additional headers incl. authentication>\r\n\r\n後,服務器以HTTP/1.0 200 Connection established\r\n\r\n作爲響應,然後(在雙線結束後),您可以進行通信,就像您將與example.com端口1234進行通信而不使用代理據我所知你已經有了他完成了客戶端 - 服務器通信部分)。

+0

謝謝你的回答,非常感謝。儘管如此,我不得不接受前面的海報,因爲我能夠輕鬆地整合他的解決方案,並且代碼甚至演示了SOCKS4/5處理以及HTTP隧道。 – 2010-04-29 14:27:42

相關問題