これは、実際には私のpostに、Pythonのoauth2 BaseHTTPServerとSABNzbd +との競合についてのフォローアップです。PythonのhttpdはWindowsでソケットエラーを投げずに使用されたポートでリッスンしますが、OS Xではリッスンしません。
基本的に、私は(GoogleのAPIののOAuth2認証情報の入力を聞いて、ローカルサーバーを作成するために使用される)以下の小さなスクリプトを持っている:OS X上で
import socket
import BaseHTTPServer
from oauth2client.tools import ClientRedirectServer, ClientRedirectHandler
port_number = 0
host_name = 'localhost'
for port_number in range(8080,10000):
try:
httpd = ClientRedirectServer((host_name, port_number),
ClientRedirectHandler)
except socket.error, e:
print "socket error: " + str(e)
pass
else:
print "The server is running on: port " + str(port_number)
print "and host_name " + host_name
httpd.serve_forever()
break
、私は二回このスクリプトを実行する場合、私が手期待される結果:
socket error: [Errno 48] Address already in use
The server is running on: port 8081
and host_name localhost
しかし、Win7ので異なるCMDウィンドウから同じスクリプトを実行している、私は喜んでソケットエラーをスローせずに同じポート(8080)上の3台のまたは4のサーバーを実行することができます。
C:\>netstat -abn | Findstr 8080
TCP 127.0.0.1:8080 0.0.0.0:0 LISTENING
TCP 127.0.0.1:8080 0.0.0.0:0 LISTENING