Пример #1
0
        /// <summary>
        /// Creates the network client, using current client configuration values
        /// </summary>
        private void SetupNetworking()
        {
            if (_netClient == null)
            {
                var receiveHandler = new MessagesReceiveHandler(_logger, NetMessages.ServerToClientMessages, _net_cl_log_messages.Boolean);

                RegisterMessageHandlers(receiveHandler);

                _netClient = new NetworkClient(
                    _logger,
                    this,
                    this,
                    new SendMappings(NetMessages.ClientToServerMessages),
                    receiveHandler,
                    _binaryDataDescriptorSet,
                    _objectListTypeRegistry,
                    _cl_name,
                    NetConstants.AppIdentifier,
                    _clientport.Integer,
                    _cl_resend.Float,
                    _cl_timeout.Float);

                _netClient.Start();
            }
        }
        private void CreateNetworkServer()
        {
            if (_netServer == null)
            {
                var port = _hostport.Integer;

                if (port == 0)
                {
                    port = _defport.Integer;

                    _hostport.Integer = _defport.Integer;
                }

                var ipAddress = NetUtilities.StringToIPAddress(_ipname.String, port);

                var receiveHandler = new MessagesReceiveHandler(_logger, NetMessages.ClientToServerMessages, _net_sv_log_messages.Boolean);

                RegisterMessageHandlers(receiveHandler);

                //Always allow the maximum number of clients since we can't just recreate the server whenever we want (clients stay connected through map changes)
                _netServer = new NetworkServer(
                    _logger,
                    this,
                    this,
                    new SendMappings(NetMessages.ServerToClientMessages),
                    receiveHandler,
                    _binaryDataDescriptorSet,
                    _objectListTypeRegistry,
                    _engine.EngineTime,
                    _maxPlayers,
                    NetConstants.AppIdentifier,
                    ipAddress,
                    NetConstants.MaxClients,
                    _sv_timeout.Float
                    );

                _netServer.Start();
            }

            _netServer.OnNewMapStarted();
        }
 private void RegisterMessageHandlers(MessagesReceiveHandler receiveHandler)
 {
     receiveHandler.RegisterHandler <NewConnection>(this);
 }
 private void RegisterMessageHandlers(MessagesReceiveHandler receiveHandler)
 {
     receiveHandler.RegisterHandler <ServerInfo>(this);
     receiveHandler.RegisterHandler <Print>(this);
 }