0

週に 1 回、1 時間のセッションでサービスに接続するために使用されるアプリケーションがあります。このセッションには多くの要件がありますが、そのうちの 1 つは、一度に 1 つの TCP 接続しか開いていないことです。

完了した 30 ほどのセッションのうち、1 時間の間に複数の TCP 接続が開かれたセッションが 3 つありました。

phpに接続状態を返すメソッドがあるかどうか疑問に思っています.netstatを使用して接続先のサーバーのIPを探し、そのステータスによって続行してもよいか待つべきかを判断することを検討しました。これに関する問題は、将来さらに多くの接続を購入する計画があるため、一度に 1 つの接続しか渡されないことです。

Zend フレームワークの Zend_Http_Client を使用しており、次のことを試しました。

クライアントとアダプター オブジェクトの設定を解除する 前回アダプターの設定解除と終了の両方を行ったときに、クライアントが関数を要求した後に、アダプターの終了関数を明示的に呼び出します

ではごきげんよう、

ジェイソン

4

3 に答える 3

0

この問題を再検討した後、ソケットストリームオプションでbindtoオプションを使用して、毎回同じポートにバインドすることにしました。これにより、前の接続が閉じられ、ポートが解放されたことを確認できます。

テストは完了していませんが、初期の結果では接続の重複は示されていません。

http://ca.php.net/manual/en/context.socket.php

于 2011-09-01T02:09:16.327 に答える
0

クライアントでこれを解決しようとしないでください。サーバーでの同時接続を制限します。

于 2009-11-16T03:38:08.003 に答える
0

netstatコマンドを実行して、リモート ホストへの接続が現在確立されているかどうかを確認するのが最も簡単な場合があります。

于 2009-11-16T03:31:54.060 に答える