socket.error: [Errno 10013] アクセス権限によって禁止されている方法でソケットにアクセスしようとしました 質問する

socket.error: [Errno 10013] アクセス権限によって禁止されている方法でソケットにアクセスしようとしました 質問する

Windows 7 で Python 2.6.5 を使用してカスタム TCP スタックを作成し、ポート 80 で有効な http ページ リクエストをローカルで処理しようとしています。しかし、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、server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler) ファイル「C:\Python26\lib\SocketServer.py」、行 400、初期化self.server_bind() ファイル "C:\Python26\lib\SocketServer.py"、行 411、server_bind 内 self.socket.bind(self.server_address) ファイル ""、行 1、bind 内

socket.error: [Errno 10013] アクセス権限によって禁止されている方法でソケットにアクセスしようとしました

これを Windows 7 で動作させるにはどうすればいいのでしょうか?

[2010年5月5日 23:44 PDT編集]答えこのエラーは、1024 未満のポートにアクセスするときに昇格された / スーパーユーザー権限が必要であるために発生すると説明されています。より大きなポート番号を使用して、それが機能するかどうかを確認します。ただし、ローカル管理者アカウントがポート 80 にアクセスできない理由をまだ知りたいです。

ベストアンサー1

私も同じ問題に遭遇しました。私のシステムは Win7 です。ターミナルで netstat -na|findstr port のようなコマンドを使用すると、ポートが使用されていることがわかります。このメッセージなしでサーバーを起動したい場合は、使用されていない他のポートを変更できます。

おすすめ記事