socket.error: [Errno 10013] Es wurde versucht, auf einen Socket auf eine Weise zuzugreifen, die durch seine Zugriffsberechtigungen verboten ist.
Ich versuche, mit Python 2.6.5 unter Windows 7 einen benutzerdefinierten TCP-Stapel zu erstellen, um gültige http-Seitenanforderungen auf Port 80 lokal zu verarbeiten. Aber ich bin auf einen Haken bei der anscheinend verschärften Sicherheit von Windows 7 gestoßen. Dieser Code hat unter Vista funktioniert.
Hier ist mein Beispielcode:
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 Traceback (letzter Anruf zuletzt):
Datei "TestServer.py", Zeile 19, in server = SocketServer.TCPServer ((HOST, PORT), MyTCPHandler) Datei "C: \ Python26 \ lib \ SocketServer.py", Zeile 400, indri self.server_bind () Datei "C: \ Python26 \ lib \ SocketServer.py", Zeile 411, in server_bind self.socket.bind (self.server_address) Datei "", Zeile 1, in bind
socket.error: [Errno 10013] Es wurde versucht, auf einen Socket auf eine Weise zuzugreifen, die durch seine Zugriffsberechtigungen verboten ist.
Wie genau funktioniert das unter Windows 7?
[Bearbeiten am 05.05.2010 @ 2344 PDT] DieseAntworte erklärt, dass der Fehler dadurch verursacht wird, dass beim Zugriff auf Ports unter 1024 erhöhte / Superuser-Berechtigungen erforderlich sind. Ich werde versuchen, eine höhere Portnummer zu verwenden, um festzustellen, ob dies funktioniert. Ich möchte jedoch weiterhin wissen, warum mein lokales Administratorkonto nicht auf Port 80 zugreifen kann.