socket.errorを解決する。[Errno 98] アドレスが既に使用されている問題
I. 基本設定
pythonでソケットバインディングアドレスが使用中の場合、しばしば以下のようなエラーになります。
linuxでは
と表示され、 " socket.error: [Errno 98] Address already in use"
Windowsの場合。
と表示され、 "socket.error: [Errno 10048] 通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)は一度だけ許可されます"
これは、ソケットがデフォルトでアドレスの再利用をサポートしていないためで、再利用したい場合は設定を表示する必要があります。つまり、setsockop関数tを呼び出してソケットにアドレスの再利用を許可してからバインドします: ソケット。 setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)を設定します。
例
self.recSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.recSocket.settimeout(CHECK_TIMEOUT)
self.recSocket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
self.recSocket.bind(('', UDP_PORT))
次に、さらなる設定( 同時接続数が多い場合は設定が必要 )
上記は、プログラム内の再利用を設定することです、さらに、あまりにも多くの同時接続要求がある場合、つまり、短時間で接続要求の多くは、システムが自動的に占有ポートの時間がまだ到着していない解放し、接続要求がある(利用可能なポートが使い切られている)ので、またアドレスすでに使用中のエラー)、それはTIME_WAIT状態の接続の多くを生成します このケースでは、調整する必要があります このケースでは、LinuxのTCP/IPカーネルパラメータが速くTIME_WAIT接続を解放するための調整が必要である。
設定ファイルをviで開きます。
# vi /etc/sysctl.conf
そして、このファイルに、次の行を追加します(詳細と説明は記事を参照してください)。 TCPコネクションのTime-WAITを減らすためにLinuxカーネルパラメータを変更する。 は、その linux TCP 接続設定 ).
net.ipv4.tcp_syncookies = 1 # You don't need to add this line if it's in the configuration file
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 5
最後に、以下のコマンドを入力して、カーネル・パラメータを有効にします。
# /sbin/sysctl -p
関連
-
Linuxシェルプログラミングにおける不正な置換の解決法
-
PIL IOErrorの解決策:画像ファイル 'images/1212.jpg' を特定できない。
-
ImportError: libSM.so.6: cannot open shared object file: そのようなファイルやディレクトリはありません 解決方法
-
linux 24, バックグラウンド処理 nohup コマンド
-
linuxのCコンパイルで、整数からキャストをせずにポインタを作る代入が行われる理由
-
Haproxy の「502 Bad Gateway サーバーが無効または不完全な応答を返しました」を解決する。
-
nginx の Linux インストール 'struct crypt_data' には 'current_salt' という名前のメンバがない 解決方法
-
中国標準のKirin OSのyumソースの構成
-
実行中のデータノードが1つあり、この操作で除外されるノードはありません。 エラー
-
elasticsearchを解決する。例外 BindTransportException [9300-9400]へのバインドに失敗しました]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Ubuntu で vs code のソースファイル "iostream" を開けない。
-
ERR_CONTENT_LENGTH_MISMATCH 問題解決のためのハンドブック
-
ARM Linuxの割り込みメカニズム解析
-
解決済み gpg: 有効な OpenPGP データが見つかりません。
-
エラーについて: error: 'QApplication app' variable has initializer but incomplete type
-
OpenSSL の Linux インストール: AttributeError: 'module' オブジェクトには 'SSL_ST_INIT' という属性がありません。
-
metasploitに関するいくつかのアーキテクチャカタログ
-
scp error not a regular file
-
c/c++][gcc] 'std::basic_string ...' への未定義の参照。
-
mysqlbinlog: 不明な変数 'default-character-set=utf8mb4' の問題を解決する。