1

同じシステムで実行されている相互に通信する必要がある 2 つのアプリケーションがあります。

私は、通信のために 2 つのアプリケーション間で TCP COM チャネルを開くという非常に奇妙な方法を使用してきました。

とにかく、この慣行は眉をひそめていますか?代替手段はありますか(stdioを使用する以外に、他の理由により不可能です)。

(パイプされた標準入出力と比較して) 最大転送速度および/または関連する遅延に制限はありますか?

サーバーとクライアントの両方にローカル (127.0.0.1) アドレスを使用しています。接続がローカル マシン自体内にとどまることが保証されるか、またはローカル マシンに戻る前に最寄りのルーターから中継され、ネットワーク カードがネットワークに影響を与えますか?接続のプロパティは?

4

2 に答える 2

1

私はしばらく前に Java を使用してシステムに取り組みました。私は同じ質問を探していました。私はそれについてあまり経験がありません。しかし、次の利点のために、通信に tcp 接続を使用することになりました。

1) 必要に応じて、将来的に別のアプリケーションを別のサーバーに配置する機能。2) アプリケーションは完全に独立しています。1 つのアプリケーションが他のアプリケーションに影響を与えずにクラッシュする可能性があります。動作中のアプリケーションが接続しようとすると、エラーが発生し、それを処理できます。

これが他の多くの種類のアプリケーションで使用されているのを見ました。それで私はそれを使いました、そしてそれはうまくいきます。ただし、ネットワーク エラーと IO エラーに注意して処理し、接続が終了した後に開いているすべてのソケットを閉じる必要があります。クライアント側からソケットを閉じるだけだったので、サーバーに多くの CLOSE_WAIT ポートができました。

よろしく、

于 2013-08-18T08:18:53.973 に答える
0

アプリケーション間の通信に TCP を使用することはかなり一般的です。

パフォーマンスは問題になりません。 Windows および Linux の同一マシン上のソケット

セキュリティを考慮する必要があります。マシン上の別のユーザーがポートに接続するとどうなるか、アプリケーションはどのように認証するかなど。

于 2013-08-18T08:33:29.497 に答える