public void AsyncRead() { if (!IsOpen()) { return; } _readBuffer.Normalize(); _readBuffer.EnsureFreeSpace(); try { _socket.BeginReceive(_readBuffer.Data(), _readBuffer.Wpos(), _readBuffer.GetRemainingSpace(), SocketFlags.None, out _error, ReceiveDataCallback, null); } catch (Exception ex) { CloseSocket(); if (LogException) { FEL_LOG_WARN("network", "SocketBase::AsyncRead: {0} errored when _socket.BeginReceive: ({1})", _remoteAddress.ToString(), ex.Message); } } }
public void ShouldEnsureFreeSpace() { _buffer.WriteCompleted(_buffer.GetBufferSize()); Assert.IsTrue(_buffer.GetRemainingSpace() == 0); _buffer.EnsureFreeSpace(); Assert.IsTrue(_buffer.GetRemainingSpace() > 0); }