change the implementation of SocketBase.XRecv to return boolean instead of the message in order to not throw again exception.

Instead of throwning AgainException (which was thrown too much) only the Recv method throw the AgainException to the user, other internal methods return boolean indicate if the operation succeed.