private static void ClientOnReceiveCompleted(object sender, TransferEventArgs transferEventArgs)
        {
            if (transferEventArgs.Count == 0)
            {
                Console.WriteLine($"[{transferEventArgs.Client.RemoteEndPoint}]: Disconnected");
                return;
            }

            var str = Encoding.UTF8.GetString(transferEventArgs.Bytes, 0, transferEventArgs.Count);
            Console.WriteLine($"[{transferEventArgs.Client.RemoteEndPoint}]: {str}");
            (transferEventArgs.Client as TcpClient)?.BeginReceive(new byte[2048]);
        }
        private void OnProxiedReceived(object sender, TransferEventArgs e)
        {
            // TODO: Disconnect??
            if (e.Count == 0) // disconnected
                return;

            ProxySending?.Invoke(e);

            InternalClient.BeginReceive(new byte[RECV_BUFSIZE]);
            _endPointClient.BeginSendAll(e.Bytes, e.Count);
        }