Exemplo n.º 1
0
 public ECSNetworkManagerSetting(ECSNetworkManagerSetting pSetting)
 {
     _maxConnections = pSetting.MaxConnections;
     _useTCP         = pSetting.UseTCP;
     _useMainThreadManagerForRPCs = pSetting.UseMainThreadManagerForRPCs;
     _serverAddress    = new ECSNetworkManagerEndpoint(pSetting.ServerAddress);
     _serverNATAddress = new ECSNetworkManagerEndpoint(pSetting.ServerNATAddress);
     _clientAddress    = new ECSNetworkManagerEndpoint(pSetting.ClientAddress);
     _clientNATAddress = new ECSNetworkManagerEndpoint(pSetting.ClientNATAddress);
 }
Exemplo n.º 2
0
    public void StartAsClient(ECSNetworkManagerSetting pSettings)
    {
        _settings = pSettings;
        Disconnect();
        InitializeDefaults();
        NetWorker client;

        if (_settings.UseTCP)
        {
            client = new TCPClient();
            ((TCPClient)client).Connect(_settings.ClientAddress.Host, _settings.ClientAddress.Port);
        }
        else
        {
            client = new UDPClient();
            if (_settings.ClientNATAddress == null || _settings.ClientNATAddress.Host == null || _settings.ClientNATAddress.Host.Trim().Length == 0)
            {
                ((UDPClient)client).Connect(_settings.ClientAddress.Host, _settings.ClientAddress.Port);
            }
            else
            {
                ((UDPClient)client).Connect(_settings.ClientAddress.Host, _settings.ClientAddress.Port, _settings.ClientNATAddress.Host, _settings.ClientNATAddress.Port);
            }
        }

        if (!client.IsBound)
        {
            RaiseFailedToBind(this);
            return;
        }

        UnregisterEventsClient();
        _networker = client;
        RegisterEventsClient();
        RaiseStart(this);
    }
Exemplo n.º 3
0
    public void StartAsServer(ECSNetworkManagerSetting pSettings)
    {
        _settings = pSettings;
        Disconnect();
        InitializeDefaults();
        NetWorker server;

        if (_settings.UseTCP)
        {
            server = new TCPServer(_settings.MaxConnections);
            ((TCPServer)server).Connect(_settings.ServerAddress.Host, _settings.ServerAddress.Port);
        }
        else
        {
            server = new UDPServer(_settings.MaxConnections);
            if (_settings.ServerNATAddress == null || _settings.ServerNATAddress.Host == null || _settings.ServerNATAddress.Host.Trim().Length == 0)
            {
                ((UDPServer)server).Connect(_settings.ServerAddress.Host, _settings.ServerAddress.Port);
            }
            else
            {
                ((UDPServer)server).Connect(_settings.ServerAddress.Host, _settings.ServerAddress.Port, _settings.ServerNATAddress.Host, _settings.ServerNATAddress.Port);
            }
        }

        if (!server.IsBound)
        {
            RaiseFailedToBind(this);
            return;
        }

        UnregisterEventsServer();
        _networker = server;
        RegisterEventsServer();
        RaiseStart(this);
    }