我正在尝试使用Python 2.6.5在Windows 7上创建自定义TCP堆栈,以便本地提供有效的HTTP页面请求(端口80)。但是,我遇到了一个问题,似乎是因为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
Traceback (most recent call last):File "TestServer.py", line 19, in server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler) File "C:\Python26\lib\SocketServer.py", line 400, in init self.server_bind() File "C:\Python26\lib\SocketServer.py", line 411, in server_bind self.socket.bind(self.server_address) File "", line 1, in bind socket.error: [Errno 10013] An attempt was made to access a socket in a way forbidden by its access permissions
在Windows 7上怎么才能让这个工作?
[2010年5月5日编辑 @ 2344 PDT]这个答案解释了访问低于1024端口时需要提升/超级用户权限的原因。我将尝试使用更高的端口号来测试是否可行。但是,我仍然想知道为什么我的本地管理员帐户无法访问端口80。