My Server-AppはTIdTCPServerを使用し、いくつかのクライアントアプリケーションはTIdTCPClientを使用してサーバーに接続します(すべてのコンピューターは同じLANにあります)。ベストプラクティス:転送ごとにTCP/IP接続を開いたままにするか閉じる
クライアントの中には、数分おきにサーバーに接続する必要があるものもあれば、1秒に1回しかなくても1秒に20回程度しかないものもあります。
クライアントとサーバーの間の接続を開いたままにしておくと、再接続は保存されますが、接続が失われているかどうかを確認する必要があります。
転送ごとに接続を閉じると、毎回再接続する必要がありますが、接続がまだ存在するかどうかを確認する必要はありません。
これを行うにはどのような方法が最適ですか?
データ転送の頻度は一般的にオープンにしておく必要がありますか?
両方のシナリオには他にどのような長所と短所がありますか?
新しいTCP接続を作成するオーバーヘッドは、主に数回のラウンドトリップです。 LAN上ではかなり高速です。だから私はそれを使用しないで数秒後に接続を閉じるだろう。 – CodesInChaos
しかし、私はシンプルな方法(ほとんどの場合は即時閉鎖)でそれを書いて、パフォーマンスが満足できるかどうかをチェックします。 – CodesInChaos
この質問への私の答えを参照してください:http://stackoverflow.com/questions/4872800/socket-open-and-close-on-1-sec-or-to-hold-open/4873002#4873002 –