1. ホーム
  2. python

[解決済み] python socket.error 操作が許可されていない

2022-02-15 17:45:34

質問

私は以下のコードをルートとして実行し、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

この問題を解決するには

どのように解決するのですか?

いくつかの可能性があります。

  • あなたはrootではありません。
  • 以前実行したアプリケーションのバージョンが、まだバックグラウンドでポートを保持しています。 そのアプリケーションの名前を指定して終了させてください。
  • システムデーモンがまだポートを保持している(例:Apache)。

ソケットを閉じた後(サーバーがkillされた後)、ポートはすぐに利用できないことに注意してください。 もし、もう存在しないプロセスがポートの再利用をブロックしている可能性がないことを確認したい場合は、以下を発行してください。

serversocket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) 

をバインドする前に