socket.error: [Errno 10013] Se intentó acceder a un socket de una manera prohibida por sus permisos de acceso

Estoy tratando de crear una pila TCP personalizada usando Python 2.6.5 en Windows 7 para atender solicitudes de página http válidas en el puerto 80 localmente. Pero me he encontrado con un problema con lo que parece que Windows 7 ha reforzado la seguridad. Este código funcionó en Vista.

Aquí está mi código de muestra:

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 Rastreo (llamadas recientes más última):
Archivo "TestServer.py", línea 19, en server = SocketServer.TCPServer ((HOST, PORT), MyTCPHandler) Archivo "C: \ Python26 \ lib \ SocketServer.py", línea 400, enen eso self.server_bind () Archivo "C: \ Python26 \ lib \ SocketServer.py", línea 411, en server_bind self.socket.bind (self.server_address) Archivo "", línea 1, en enlace

socket.error: [Errno 10013] Se intentó acceder a un socket de una manera prohibida por sus permisos de acceso

¿Cómo hago para que esto funcione exactamente en Windows 7?

[Editar 5/5/2010 @ 2344 PDT] Estoresponder explica que el error es causado por la necesidad de privilegios elevados / de superusuario al acceder a puertos inferiores a 1024. Voy a intentar usar un número de puerto más alto para ver si eso funciona. Sin embargo, todavía me gustaría saber por qué mi cuenta de administrador local no puede acceder al puerto 80.

Respuestas a la pregunta(10)

Su respuesta a la pregunta