Beispiel #1
0
        public OutgoingServerChannel(
            NetworkTransportConfig config,
            ServerUdpPacketTransport transport,
            IPacketEncryptor packetEncryption,
            ILogger logger)
        {
            this._config           = config ?? throw new ArgumentNullException(nameof(config));
            this._transport        = transport ?? throw new ArgumentNullException(nameof(transport));
            this._packetEncryption = packetEncryption ?? throw new ArgumentNullException(nameof(packetEncryption));
            this._logger           = logger ?? throw new ArgumentNullException(nameof(logger));

            this._clientEntitiesToRemove = new AppendOnlyList <Entity>(64);
        }
        public ClientUdpPacketTransport(
            ILogger logger,
            IPacketEncryptor packetEncryption,
            NetworkTransportConfig transportConfig,
            IPEndPoint remoteEndPoint)
        {
            this._packetEncryption = packetEncryption ?? throw new ArgumentNullException(nameof(packetEncryption));
            this._remoteEndPoint   = remoteEndPoint;

            this._receiveBuffer = new ReceiveBuffer(transportConfig.MaxPacketSize, transportConfig.ReceivePacketQueueCapacity);
            this._socket        = new ClientUdpSocket(logger, this._receiveBuffer);

            this._packetSerializationBytePool = new ByteArrayPool(transportConfig.MaxPacketSize, transportConfig.SendPacketQueueCapacity);
        }
        public ServerUdpPacketTransport(
            ILogger logger,
            IPacketEncryptor packetEncryption,
            NetworkTransportConfig transportConfig,
            UdpServerConfig udpServerConfig)
        {
            this._logger           = logger ?? throw new ArgumentNullException(nameof(logger));
            this._packetEncryption = packetEncryption ?? throw new ArgumentNullException(nameof(packetEncryption));
            this._endPoint         = udpServerConfig.HostIpEndPoint;

            this._receiveBuffer = new ReceiveBuffer(transportConfig.MaxPacketSize, transportConfig.ReceivePacketQueueCapacity);
            this._udpSocket     = new ServerUdpSocket(logger, this._receiveBuffer);

            this._packetSerializationBytePool = new ByteArrayPool(transportConfig.MaxPacketSize, transportConfig.SendPacketQueueCapacity);
        }
Beispiel #4
0
        public GameServerClient(
            ILogger logger,
            IJsonSerializer jsonSerializer,
            PacketJitterBuffer jitterBuffer,
            NetworkTransportConfig transportConfig)
        {
            this._logger         = logger ?? throw new ArgumentNullException(nameof(logger));
            this._jsonSerializer = jsonSerializer ?? throw new ArgumentNullException(nameof(jsonSerializer));

            this._connection = new GameServerConnection
            {
                State           = GameServerConnection.ConnectionState.None,
                PacketEncryptor = new XorPacketEncryptor(),
            };

            this._jitterBuffer = jitterBuffer ?? throw new ArgumentNullException(nameof(jitterBuffer));

            this._transportConfig = transportConfig ?? throw new ArgumentNullException(nameof(transportConfig));
        }