Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

socket.error: [Errno 10013] An attempt was made to access a socket in a way forbidden by its access permissions

I'm trying to create a custom TCP stack using Python 2.6.5 on Windows 7 to serve valid http page requests on port 80 locally. But, I've run into a snag with what seems like Windows 7 tightened up security. This code worked on Vista.

Here's my sample code:

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

How exactly do I get this to work on Windows 7?

[Edit on 5/5/2010 @ 2344 PDT] This answer explains that the error is caused by the need for elevated / superuser privileges when accessing ports lower than 1024. I'm going to try using a higher port number to see if that works. However, I still would like to know why my local admin account can't access port 80.

like image 452
bitcycle Avatar asked May 06 '10 06:05

bitcycle


People also ask

How do I fix socket Error 10013?

Socket error 10013 message implies that a port is blocked and/or unreachable. To fix it, you can try turning off any security software (such as antivirus and firewall product) installed on your server.


1 Answers

I just encountered the same issue, my system is Win7. just use the command on terminal like: netstat -na|findstr port, you will see the port has been used. So if you want to start the server without this message, you can change other port that not been used.

like image 74
David Avatar answered Oct 01 '22 10:10

David