bool CanReuse () { // The real condition is !(socket.Poll (0, SelectMode.SelectRead) || socket.Available != 0) // but if there's data pending to read (!) we won't reuse the socket. return (socket.Poll (0, SelectMode.SelectRead) == false); }