python socket.error操作不允许

big*_*big 4 python linux

我以root身份运行代码并使用python2.6.1,平台是linux

>>> import socket
>>> serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> serversocket.bind((socket.gethostname(), 80))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in bind
socket.error: [Errno 1] Operation not permitted
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题呢

Jir*_*ika 9

有几种可能性.

  • 你不是根.
  • 以前运行的应用程序版本仍然在后台保存端口.按名称杀死它.
  • 系统守护程序仍然保留端口,例如Apache.

请注意,在套接字关闭(服务器已被终止)后,端口不会立即可用.如果您想确保不再存在的进程无法阻止端口重用,请发出:

serversocket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) 
Run Code Online (Sandbox Code Playgroud)

在绑定它之前.