Esempio n. 1
0
        /// <summary>
        /// <see cref="NetPeerConfiguration"/> constructor.
        /// </summary>
        public NetPeerConfiguration(string appIdentifier)
        {
            if (string.IsNullOrEmpty(appIdentifier))
            {
                throw new LidgrenException("App identifier must be at least one character long.");
            }
            AppIdentifier = appIdentifier;

            _disabledTypes =
                NetIncomingMessageType.ConnectionApproval |
                NetIncomingMessageType.UnconnectedData |
                NetIncomingMessageType.ConnectionLatencyUpdated |
                NetIncomingMessageType.NatIntroductionSuccess;

            _networkThreadName = "Lidgren Network Thread";
            _localAddress      = IPAddress.Any;
            _broadcastAddress  = NetUtility.RetrieveBroadcastAddress() ?? IPAddress.Broadcast;
            _storagePool       = ArrayPool <byte> .Create();

            _port = 0;
            _receiveBufferSize         = 131071;
            _sendBufferSize            = 131071;
            _acceptIncomingConnections = false;
            _pingInterval             = TimeSpan.FromSeconds(4);
            _connectionTimeout        = TimeSpan.FromSeconds(25);
            _fragmentGroupTimeout     = TimeSpan.FromSeconds(8);
            _useMessageRecycling      = true;
            _resendHandshakeInterval  = TimeSpan.FromSeconds(3);
            _maximumHandshakeAttempts = 5;
            _autoFlushSendQueue       = true;

            _maximumTransmissionUnit = DefaultMTU;
            _autoExpandMTU           = false;
            _expandMTUFrequency      = TimeSpan.FromSeconds(2);
            _expandMTUFailAttempts   = 5;
            UnreliableSizeBehaviour  = NetUnreliableSizeBehaviour.NormalFragmentation;

            _loss = 0f;
            _minimumOneWayLatency = TimeSpan.Zero;
            _randomOneWayLatency  = TimeSpan.Zero;
            _duplicates           = 0f;

            _isLocked = false;
        }