テスト・ケースを返します。マイ接続されているが、常に真
- 接続を開始する前に、それは偽
- 接続が偽
- 接続は、クライアントのリターンによって閉鎖され、他端リターンによって閉鎖されて返す必要がありますfalse
データが使用できない場合でも接続されます。返信tr UE
class MyConnection { //Assume I have all initialization for _socket public bool IsConnected() { return !(_socket.Poll(1, SelectMode.SelectRead) && _socket.Available == 0); } private Socket _socket;
}
class Test { static void Main(string[] args) { MyConnection my = new MyConnection() if(my.IsConnected()) /*always return true even when I am not connected*/; } }
ことを防ぐために、どのように任意のアイデア?
はこれまでのところ、答えのいずれもが満足ではなかった....以下を行うことができます
:
public bool IsConnected()
{
bool bConnected = false;
bool bState = _socket.Poll(1, SelectMode.SelectRead);
try
{
if (bState && (_socket.Available == 0))
bConnected = false;
else
bConnected = true;
}
catch (SocketException)
{
//_socket.Available can throw an exception
bConnected = false;
}
return bConnected;
}
ネットワークケーブルを引き出しますか? :-) – paxdiablo
あなたが実際に達成しようとしているものを投稿すると、より実りあるかもしれません。 –