我想寫一個Python進程監聽的端口上,當客戶端連接到它,它啓動一個線程,其執行以下操作:如何使用Python流套接字作爲代理?
連接到遠程服務(HTTP:/ /193.108.24.18:8000/magicFM)
通行證接收連接的客戶端(這恰好是Windows媒體播放器)的任何數據
的故事是,我想在聽我的電臺工作,但我不能因爲我在一個其他國家(僅適用於全國性),我不能在我的電腦上更改代理服務器設置.... 但我有這樣的服務器,我想作爲代理使用。
在此先感謝。
這裏就是我所做的迄今:
#!/usr/bin/env python
import socket, urllib2
TCP_IP = '0.0.0.0'
TCP_PORT = 5566
BUFFER_SIZE = 16 * 1024 #16 kb/s
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connection address:', addr
req = urllib2.urlopen('http://193.108.24.18:8000/magicFM')
while 1:
chunk = req.read(BUFFER_SIZE)
if not chunk: break
conn.send(chunk)
conn.close()
但它失敗...有:
Traceback (most recent call last):
File "./magicfmproxy.py", line 17, in ?
conn.send(chunk)
socket.error: (32, 'Broken pipe')
有很多這樣的軟件,例如tcptunnel – hamstergene
您也可以使用Putty創建SOCKS代理,然後使用Proxifier強制WMP使用您剛創建的SOCKS代理。 –
爲了將來兼容,請將''0.0.0.0''更改爲''''並將'AF_INET'更改爲'AF_INET6'。它仍然適用於IPv4,但也可以與IPv6一起使用。 – glglgl