Socket.Connectedを使用して、まだ接続されているソケットがSslStreamを壊すかどうかを判断するかどうかを知りたいです。
2 に答える
Socket.IsBound
が接続されているかどうかはチェックしませんSocket
。Socket
aがローカルポート番号にバインドされているかどうかを確認します。だからいいえ。他の場所で何か間違ったことをしている可能性があります。
サポートドキュメント
ソケットが接続されているかどうかを確認するにはSocket.Connectedを使用します
いいえ、実際にはソケットに対して何も行わないため、そうすべきではありません。もう一方の端のサーバーがまだそこにあるかどうかを把握しようとしていますか?その場合、このプロパティは接続が予期せず中断されたかどうか(プログラムのクラッシュ、ネットワークのダウンなど)を通知しないため、何らかの種類のpingを設定することをお勧めします。
MSDNから:
Connectedプロパティは、最後のI/O操作の時点でのソケットの接続状態を取得します。falseが返された場合、ソケットは接続されていないか、接続されていません。
Connectedプロパティの値は、最新の操作の時点での接続の状態を反映しています。接続の現在の状態を判別する必要がある場合は、ノンブロッキングのゼロバイトの送信呼び出しを行います。呼び出しが正常に戻るか、WAEWOULDBLOCKエラーコード(10035)をスローした場合、ソケットは接続されたままです。そうしないと、ソケットは接続されなくなります。
ユーザーデータグラムプロトコル(UDP)ソケットでConnectを呼び出すと、Connectedプロパティは常にtrueを返します。ただし、このアクションは、UDPの固有のコネクションレス型の性質を変更しません。