async void Listen(int port)
    {
        TcpClient client = null;

        try
        {
            _server = new TcpListener(IPAddress.Parse("0.0.0.0"), port);
            _server.Start();

            Debug.Log("server start at " + port);

            while (true)
            {
                client = await _server.AcceptTcpClientAsync();

                Debug.Log("client connect");

                _client = new NetWorkClient(client);
                await _client.StartReceiving();
            }
        }
        catch (Exception ex)
        {
            // display the error message or whatever
            Debug.LogException(ex);
        }
        finally
        {
            Debug.Log("close server");
            _server?.Stop();
        }
    }