public void SendPacket(byte[] buffer, int offset, int size, Action<StreamBuffer> onSent = null)
{
try
{
lock (_session)
{
if (_session.Socket == null)
return;
SocketAsyncEventArgs saea = new SocketAsyncEventArgs();
saea.Completed += SendComplete;
saea.SetBuffer(buffer, offset, size);
if (onSent != null)
saea.UserToken = new NetworkSendToken(new StreamBuffer(buffer, offset, size), onSent);
if (_session.Socket.SendAsync(saea) == false)
ReceiveComplete(null, saea);
}
}
catch (SocketException)
{
}
catch (Exception e)
{
Logger.Err(LogMask.Aegis, e.ToString());
}
}