コード例 #1
0
ファイル: LiteServer.cs プロジェクト: KSExtrez/LiteNetwork
        /// <summary>
        /// Creates a new <see cref="LiteServer{TUser}"/> instance with a server configuration,
        /// packet processor and a service provider.
        /// </summary>
        /// <param name="configuration">Server configuration.</param>
        /// <param name="packetProcessor">Packet processor to use.</param>
        /// <param name="serviceProvider">Service provider to use.</param>
        public LiteServer(LiteServerConfiguration configuration, ILitePacketProcessor packetProcessor, IServiceProvider?serviceProvider)
        {
            Configuration    = configuration;
            _packetProcessor = packetProcessor;
            _serviceProvider = serviceProvider !;
            _connectedUsers  = new ConcurrentDictionary <Guid, TUser>();
            _socket          = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            _socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);

            if (serviceProvider is not null)
            {
                _logger = serviceProvider.GetService <ILogger <LiteServer <TUser> > >();
            }

            _acceptor = new LiteServerAcceptor(_socket);
            _acceptor.OnClientAccepted += OnClientAccepted;
            _acceptor.OnError          += OnAcceptorError;

            _receiver = new LiteServerReceiver(_packetProcessor, Configuration.ReceiveStrategy, Configuration.ClientBufferSize);
            _receiver.Disconnected += OnDisconnected;
            _receiver.Error        += OnReceiverError;
        }
コード例 #2
0
ファイル: LiteServer.cs プロジェクト: KSExtrez/LiteNetwork
 /// <summary>
 /// Creates a new <see cref="LiteServer{TUser}"/> instance with a server configuration
 /// and a <see cref="ILitePacketProcessor"/>.
 /// </summary>
 /// <param name="configuration">Server configuration</param>
 /// <param name="packetProcessor">A <see cref="ILitePacketProcessor"/> to use.</param>
 public LiteServer(LiteServerConfiguration configuration, ILitePacketProcessor packetProcessor)
     : this(configuration, packetProcessor, null)
 {
 }
コード例 #3
0
ファイル: LiteServer.cs プロジェクト: KSExtrez/LiteNetwork
 /// <summary>
 /// Creates a new <see cref="LiteServer{TUser}"/> instance with a server configuration,
 /// an <see cref="IServiceProvider"/> and a default <see cref="LitePacketProcessor"/>.
 /// </summary>
 /// <param name="configuration">Server configuration.</param>
 /// <param name="serviceProvider">Service provider to use.</param>
 public LiteServer(LiteServerConfiguration configuration, IServiceProvider serviceProvider)
     : this(configuration, new LitePacketProcessor(), serviceProvider)
 {
 }
コード例 #4
0
ファイル: LiteServer.cs プロジェクト: KSExtrez/LiteNetwork
 /// <summary>
 /// Creates a new <see cref="LiteServer{TUser}"/> instance with a server configuration
 /// and a default <see cref="ILitePacketProcessor"/>.
 /// </summary>
 /// <param name="configuration">Server configuration</param>
 public LiteServer(LiteServerConfiguration configuration)
     : this(configuration, new LitePacketProcessor())
 {
 }