python socket.error操作不允许

时间:2012-06-21 19:33:25

标签: python linux

我在root下运行代码并使用python2.6.1,platform is 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

如何解决这个问题

1 个答案:

答案 0 :(得分:9)

有几种可能性。

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

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

serversocket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) 

绑定之前。