Hmm, yea, true, you right.
I guess this method is not as intuitive is its name says,
I will look into may be using combination of pooling for read with polling for write.
Or actually now when I think about it, may be it needs to be pooling for write, which will return true when data can be sent, and thats where I check for IsConnected property anyway, before sending any command, basically writing to the socket.
I will play with that, to see how it works, but I guess if you like can you try that too, using only polling method but for write. So try it like that:
partialvoid IsSocketConnected(refbool isConnected) { isConnected = (!this._isDisconnecting && this._socket != null&& this._socket.Connected && this._isAuthenticated && this._messageListenerCompleted != null) && this._socket.Poll(-1, SelectMode.SelectWrite); }
I will read more about it later today but this is a first thing that came to my mind as I woke up :):).
Thanks,
Oleg