ポート 80 でローカルに有効な http ページ要求を処理するために、Windows 7 で Python 2.6.5 を使用してカスタム TCP スタックを作成しようとしています。しかし、Windows 7 のようにセキュリティが強化されたように思われる障害に遭遇しました。このコードは Vista で動作しました。
ここに私のサンプルコードがあります:
import SocketServer
import struct
class MyTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
headerText = """HTTP/1.0 200 OK
Date: Fri, 31 Dec 1999 23:59:59 GMT
Content-Type: text/html
Content-Length: 1354"""
bodyText = "<html><body>some page</body></html>"
self.request.send(headerText + "\n" + bodyText)
if __name__ == "__main__":
HOST, PORT = "localhost", 80
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()
C:\python>python TestServer.py トレースバック (最新の呼び出しが最後):
ファイル "TestServer.py"、19 行目、サーバー内 = SocketServer.TCPServer((HOST, PORT), MyTCPHandler) ファイル "C:\Python26\lib \SocketServer.py"、400 行目、init self.server_bind() ファイル内 "C:\Python26\lib\SocketServer.py"、411 行目、server_bind self.socket.bind(self.server_address) ファイル内 ""、1 行1、バインド中socket.error: [Errno 10013] アクセス許可で禁止されている方法でソケットにアクセスしようとしました
これを Windows 7 で動作させるにはどうすればよいですか?
[2010 年 5 月 5 日 @ 2344 PDT で編集] この回答では、1024 未満のポートにアクセスする際に、昇格された / スーパーユーザー権限が必要なためにエラーが発生することが説明されています。動作します。ただし、ローカル管理者アカウントがポート 80 にアクセスできない理由を知りたいです。