private void On_Accept_Completed(object sender, SocketAsyncEventArgs acceptedArg)
        {
            if (acceptedArg.SocketError == SocketError.Success)
            {
                Console.WriteLine("Client Accepted");
                Socket clientSocket = acceptedArg.AcceptSocket;
                _flowControlEvent.Set();                         // Let main thread accept new clients
                CallBackonNewclient?.Invoke(clientSocket, null); // Call Newclient method by delegate if CallBackonNewclient is not null
                return;
            }

            Console.WriteLine("Couldn't accept the client");
            Console.WriteLine("Error type: {0}", acceptedArg.SocketError);
            _flowControlEvent.Set();
            //Control shouldn't reach here
        }