Need help Host Connection Fail

Hi,

I seriously need help…to see why i cannot connect to the masterserver as client…

i always get the “NAT target 0 not connected to NAT facilitator 67.225.180.24:50005”

here is my code

using UnityEngine;

namespace Assets.Scripts.Manager
{
    public class NetworkManager : MonoBehaviour
    {
        public const string GameName = "Keep the circle";
        public const string RoomName = "Room1";
        public const string TypeGame = "Capture the flags";

        public const int ListenPort = 25000;
        public const int NbPlayer = 5;

        public PlayerManager Player;

        public HostData[] _hostList;

        private bool _tryingToConnect = false;

        private MainMenuManager _mainMenuManager;

        public void StartServer(MainMenuManager mainMenuManager)
        {
            _mainMenuManager = mainMenuManager;
            Network.InitializeServer(NbPlayer, ListenPort, !Network.HavePublicAddress());
            MasterServer.RegisterHost(GameName, RoomName, TypeGame);
            _mainMenuManager.DisableCanvas();
        }

        public void ConnectToServer(MainMenuManager mainMenuManager)
        {
            _mainMenuManager = mainMenuManager;
            MasterServer.RequestHostList(GameName);
        }

        #region LifeCycle

        void Update()
        {
            if (_tryingToConnect)
            {
                if (!Network.isClient && !Network.isServer)
                {
                    Debug.Log(_hostList[0]);
                    if (Network.Connect(_hostList[0].gameName) == NetworkConnectionError.ConnectionFailed)
                    {
                        Debug.Log("Erreur de connection");
                    }

                    _tryingToConnect = false;
                }
            }
        }

        void OnServerInitialized()
        {
            Debug.Log("Server Initialized!");
            var player = Network.Instantiate(Player, new Vector3(0, 3, 0), Quaternion.identity, 0) as PlayerManager;
            player.networkView.RPC("SetColor", RPCMode.AllBuffered, new Vector3(255, 0, 0));
        }

        void OnConnectedToServer()
        {
            Debug.Log("Connection Initialized!");
            var player = Network.Instantiate(Player, new Vector3(1, 1, 0), Quaternion.identity, 0) as PlayerManager;
            player.networkView.RPC("SetColor", RPCMode.AllBuffered, new Vector3(0, 255, 0));
        }

        void OnMasterServerEvent(MasterServerEvent mse)
        {
            if (mse == MasterServerEvent.RegistrationSucceeded)
            {
                Debug.Log("Registered Server");
            }
            else if (mse == MasterServerEvent.HostListReceived)
            {
                _hostList = MasterServer.PollHostList();
               
                if (!Network.isClient && !Network.isServer)
                {                  
                    if (_hostList.Length > 0)
                    {
                        _tryingToConnect = true;                  
                    }
                    else
                    {
                        Debug.Log("Nothing Found");
                    }
                }

            }
        }

        #endregion
    }
}

plz i need ur help

i found that

            else if (mse == MasterServerEvent.HostListReceived)
            {
                if (MasterServer.PollHostList().Length > 0) // is always 0 Length ??? why
                {
                    _hostList = MasterServer.PollHostList();
                    _tryingToConnect = true;  
                }
            }