Ejemplo n.º 1
0
        private void Timer_Elapsed(object sender, EventArgs e)
        {
            if (networkStream.DataAvailable)
            {
                int    length   = (int)formatter.Deserialize(networkStream);
                byte[] buffer   = new byte[length];
                int    position = 0;
                while (position < length)
                {
                    position += networkStream.Read(buffer, position, length - position);
                }

                //networkStream.Read(buffer, 0, (int)length);
                MemoryStream mem = new MemoryStream(buffer);
                mem.Position = 0;
                MemoryStream decompressed = new MemoryStream();
                ShortEncoder.Decode(mem, decompressed);
                decompressed.Position = 0;
                screenImg             = encoder.LoadFromStr(decompressed);
                //screenImg = new Bitmap(mem);
                NewFrame.Invoke(screenImg);
            }
            else
            {
                ClientCommand clientCommand = new ClientCommand
                {
                    needFrame  = true,
                    needHeight = height,
                    needWidth  = width
                };
                formatter.Serialize(networkStream, JsonConvert.SerializeObject(clientCommand));
            }
        }