クライアントソケットが現在接続を維持しているかどうかを確認することはできますか?AsyncCallBack操作を使用するマルチスレッドサーバーを使用しています。この問題についても同様の質問がたくさんあり、Socket.Pollメソッドについて読んだことがあります。すべてが正しく機能しません。
このサンプルを適用しようとしました:
bool IsConnectedAviable(Socket s)
{
try
{
if (s != null && s.Connected)
{
if (s.Poll(0, SelectMode.SelectRead))
{
byte[] buff = new byte[1];
if (s.Receive(buff, SocketFlags.Peek) == 0)
{
return false;
}
else
{
return true;
}
}
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
}
前もって感謝します!:)