public void Write(IMessage message)
{
if (message == null)
throw new ArgumentNullException(nameof(message));
if (!Connected)
{
OnResetBuffer();
OnDisconnected?.Invoke(this, new TcpClientEventArgs(mTcpClient));
throw new InvalidProgramException(
"This client has not connected to server.");
}
try
{
var buffer = OnHandleWrite(message);
mTcpClient.GetStream().BeginWrite(buffer, 0, buffer.Length, OnWriteResult, mTcpClient);
}
catch (Exception e)
{
Logger.ErrorLine(e.Message);
}
}