Exemple #1
0
        public void ReceivePackage()
        {
            AsyncCallback callback = null;

            callback = ar =>
            {
                int bytesRead = _stream.EndRead(ar);

                var data = new byte[bytesRead];
                Array.Copy(_buffer, data, bytesRead);

                if (_isNotMoreToRead)
                {
                    _stream.BeginRead(_buffer, _offset, _count, callback, null);
                }

                using (var stream = new MemoryStream(data))
                {
                    ServerPackage package = null;
                    do
                    {
                        package = _factory.GetNextPackage(stream);
                        if (package != null)
                        {
                            _game.SetPackage(package);
                        }
                    } while (package != null);
                }
            };

            _stream.BeginRead(_buffer, _offset, _count, callback, null);
        }
        public void GetNextPackageEmptyTest()
        {
            var data = new byte[] { 0, 0, 0, 0 };

            ServerPackage package = null;

            using (var stream = new MemoryStream(data))
            {
                Console.WriteLine(stream.Length);
                package = _factory.GetNextPackage(stream);
            }

            Assert.Null(package);
        }