Kato Ryo Official Site

抽象度とエネルギーを上げる

【覚書】「[WinError 10013] アクセス許可で禁じられた方法でソケットにアクセスしようとしました。」というエラーが発生

 
この記事を書いている人 - WRITER -
Pocket

PythonのWebアプリケーション(Django)を初心者にもわかりやすく解説

↑こちらの記事を参考に、Python用のWebアプリケーション「Django」(”ジャンゴ”と読む)を使ってみたところ、ちょっとトラブった&解決したので、覚書として記事にしておく。

 

具体的には、サーバを起動させようとしたところ、
「[WinError 10013] アクセス許可で禁じられた方法でソケットにアクセスしようとしました。」
というエラーが出て、サーバの起動に失敗した、というもの。

 

この記事の説明では、port 番号を指定せずにサーバを起動
(コマンドプロンプト上で ”python manage.py runserver” と入力)
しているので、そのまま実行すると、デフォルト設定である ポート番号 8000 を使うことになる。

だが、自分のPCではそこに問題があった。

 

まず、ポートの状態を調べるために、コマンドプロンプトで
netstat -nao
と入力。

( netstat.exe はTCPの通信状態を調べるためのコマンド。
オプションの意味は以下の通り。
-o  プロセスID(PID)を表示
-a  すべての接続とリッスンポート(待ち受け状態のTCPポート)を表示
-n  IPアドレスやポート番号を全て数値で表示)

 

下は、自分のPCで netstat コマンドを実行した結果。
8000番のポートは TIME_WAIT となっていた。
(TIME‗WAIT の意味は、コネクションの終了待ち状態、ということ。)

 

なぜ TIME_WAIT になっているのかはよくわからないが、とにかく、そういう状態になっていて使えないようだったので、
”python manage.py runserver 8080” と、空いている8080番のポートで実行したところ、うまく行った、という話。

 

この記事を書いている人 - WRITER -

- Comments -

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Copyright© 抽象度とエネルギーを上げる , 2018 All Rights Reserved.