private void OnSocketOperationCompleted(object sender, SocketAsyncEventArgs e)
{
switch(e.LastOperation)
{
case SocketAsyncOperation.Disconnect:
DisconnectCallback();
break;
case SocketAsyncOperation.Send:
SendOutputBufferCallback();
break;
default:
Debug.Fail("Invalid LastOperation: " + e.LastOperation);
break;
}
}