public void SendPacket(StreamBuffer buffer, Action<StreamBuffer> onSent = null)
{
try
{
lock (_session)
{
if (_session.Socket != null)
{
// ReadIndex가 OnSocket_Send에서 사용되므로 ReadIndex를 초기화해야 한다.
buffer.ResetReadIndex();
if (onSent == null)
_session.Socket.BeginSend(buffer.Buffer, 0, buffer.WrittenBytes, SocketFlags.None, Socket_Send, null);
else
_session.Socket.BeginSend(buffer.Buffer, 0, buffer.WrittenBytes, SocketFlags.None, Socket_Send,
new NetworkSendToken(buffer, onSent));
}
}
}
catch (SocketException)
{
}
catch (Exception e)
{
Logger.Err(LogMask.Aegis, e.ToString());
}
}