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); }
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); }
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); }