Это, кажется, работает для меня ... Кто-нибудь видит какие-либо проблемы?
public bool IsConnected
{
get {return !(Socket.Poll(1, SelectMode.SelectRead)
&& m_socket.Available ==0)}
}
Можно также добавить в метод расширения.
public static class SocketExtensions
{
public static bool IsConnected(this Socket @this)
{
return !(@this.Poll(1, SelectMode.SelectRead) && @this.Available == 0);
}
}
Теперь вы можете легко использовать его в своем коде, работающем с сокетами.
var mySocket = new Socket();
while(mySocket.IsConncted())
{
// Do Stuff
}