0

Linux では、TCP ソケットの状態をどのように判断できますか? このテーマで多くを検索しましたが、実際に使用できるソリューションは見つかりませんでした。私はほとんどの追跡が言う:ソケットに何かを書き込むと、接続が閉じられると失敗します。しかし、ストリームのコンテンツがバインドされていて、がらくたをストリームに書き込めない場合はどうなるでしょうか? もう 1 つの側面として、netstat はソケットの状態を判断できますが、netstat ベースのソリューションを実装したい場合、非常にコストがかかります。/proc/net/tcp からすべてのレコードを読み取り、適切な行を見つけてテスト状態を確立するよりも、fileDescriptor を socketID に解決する必要があります。このメソッドを定期的に呼び出さなければならない場合、あまり効率的ではありません。この問題の他の簡単な解決策はありますか?

4

2 に答える 2

0

できません。TCP ソケットには動的な状態がありません。以前の操作の結果しかありません。TCP 接続で操作しない場合、意図的に状態を変更しないように設計されています。これには「ダイヤル トーン」がありません。これが、SNA のようなネットワーク アーキテクチャを完全に置き換えた根本的な理由です。

于 2013-11-01T04:23:17.963 に答える