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.