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) { if (NetSettings.Logger != null) { NetSettings.Logger.Warn(ex); } else { Console.WriteLine(ex); } } } }
public void SendPacket(MessageBuffer packet) { if (_closed.Value) { return; } if (packet.Wpos() > 0) { QueuePacket(packet); } }