0

私はPythonのWebサイト/サーバのステータスをXP SP3で実行しているGUIプログラムで、マルチスレッドは別のサイト/サーバをチェックします。何時間も実行した後、プログラムはurlopenエラーをいつもタイムアウトさせ始めます。これはサーバーからのPOST要求の直後に起こります(特定のものではなく、AまたはBまたはCかもしれません)。通常は数時間の実行後に問題を引き起こす最初のPOSTリクエストで、不明な瞬間にPOSTリクエストが発生すると、それ以降に取得するのはurlopenエラーです。私のPythonプログラムを数時間実行してもpingを実行することはできません

私はまだpingを実行できますが、プログラムがすべて正常終了したら、どのサイトも閲覧できません。これは間違いなくこの問題の原因となるプログラムです。問題の内容をデバッグ/チェックする方法がわかりません。また、OS側かプログラムがあまりにも多くのリソース/接続を浪費しているかどうかわかりません。あまりにも多くの接続が使用されているときping?)、誰かが私を助けてくれますか?

+0

あなたの他の関連する質問について、他の人が提案しているように、同じOSまたは異なるOS(またはそのバージョン)を実行している別のコンピュータでスクリプトを試してみてください。 – martineau

答えて

3

リクエストごとにTCPセッションを終了してもよろしいですか? netstatの情報を時々チェックしてみてください。アクティブ/確立されたセッションの数が増えていることがわかると、スクリプトにいくつか問題があることを意味します。

はい、通常、空きTCPソケットがなくてもpingできます。

+0

ありがとうたくさんの男!私は 'del'は接続を閉じる仕事をするだろうが、実際にはそうではない。 netstatを使って、私は、たくさんの "Close_Wait"接続がすべてのリソースを無駄にしているのを発見しました。コードを '.close()'に変更した後、今はすべてOKです。 – Shane

+0

@Shane:あなたの問題を見つけられたらうれしいです。 Wiresharkネットワークアナライザを使用してネットワークの問題も把握することをお勧めします。がんばろう ;) – Elalfer

関連する問題