Пример #1
0
        /// <summary> 运行Cmd命令 </summary>
        public byte[] GetPrintScreenDatas()
        {
            //List<byte> result = new List<byte>();

            using (ChannelFactory <IStreamServer> channelFactory = new ChannelFactory <IStreamServer>(WSHttpBinding, ImageSenderAddress))
            {
                IStreamServer proxy = channelFactory.CreateChannel();

                MemoryStream writeStream = new MemoryStream();

                proxy.PrintStreenToStream();

                byte[] buffer;

                //获取所用块压缩流,并组装
                while (proxy.ReadNextBuffer())
                {
                    // read bytes from input stream
                    buffer = proxy.GetCurrectBuffer();

                    // write bytes to output stream
                    writeStream.Write(buffer, 0, buffer.Length);

                    //result.AddRange(buffer);
                }

                return(writeStream.GetBuffer());

                //Bitmap bitmap = new Bitmap(writeStream);

                //writeStream.Dispose();

                //return bitmap;
            }
        }
Пример #2
0
 public void Process(IStreamServer server)
 {
     new StreamPump(server.Streams[StreamIndex],
                    data => server.WriteMessage(new StreamData(StreamIndex, data)),
                    ex =>
     {
         server.Log("Forwarded port closed: " + RemoteEndPoint + " to " + LocalEndPoint);
         server.WriteMessage(new StreamError(StreamIndex, ex));
     }).Pump();
 }
Пример #3
0
        public static IStreamServer NewStreamChannel(string serverAddress, TimeSpan timeOut = default(TimeSpan))
        {
            NetTcpBinding binding = StreamedTcpBinding();

            binding.Security.Mode = SecurityMode.None;

            if (timeOut != default(TimeSpan))
            {
                binding.SendTimeout = timeOut;
            }

            EndpointAddress endpoint = new EndpointAddress(serverAddress);
            ChannelFactory <IStreamServer> channelFactory = new ChannelFactory <IStreamServer>(binding, endpoint);
            IStreamServer channel = channelFactory.CreateChannel();

            return(channel);
        }
Пример #4
0
 public void Process(IStreamServer server)
 {
     try
     {
         server.Listeners[StreamIndex] = TcpListenerHelper.Start(Address, Port, client =>
         {
             var streamIndex             = --server.ConnectionCount;
             server.Streams[streamIndex] = client.GetStream();
             server.WriteMessage(new AcceptRequest(StreamIndex, streamIndex, client.Client.RemoteEndPoint.ToString()));
         }, exception => server.WriteMessage(new StreamError(StreamIndex, new EndOfStreamException())));
         server.WriteMessage(new ListenResponse(StreamIndex));
     }
     catch (Exception ex)
     {
         server.WriteMessage(new StreamError(StreamIndex, ex));
     }
 }
Пример #5
0
        public void Process(IStreamServer server)
        {
            Stream stream;

            lock (server.Streams)
            {
                if (!server.Streams.ContainsKey(StreamIndex))
                {
                    return;
                }
                stream = server.Streams[StreamIndex];
            }
            try
            {
                stream.Write(Data, 0, Data.Length);
            }
            catch (Exception ex)
            {
                server.WriteMessage(new StreamError(StreamIndex, ex));
            }
        }
Пример #6
0
        public void Process(IStreamServer server)
        {
            var client = new TcpClient();

            client.BeginConnect(Address, Port, ar =>
            {
                try
                {
                    client.EndConnect(ar);
                    server.Streams[StreamIndex] = client.GetStream();
                    var connectResult           = new ConnectResponse(StreamIndex, LocalEndPoint, client.Client.RemoteEndPoint.ToString());
                    connectResult.Process(server);
                    server.WriteMessage(connectResult);
                }
                catch (Exception ex)
                {
                    Debug.Print(DateTime.Now + " " + Environment.MachineName + ": " + ex);
                    server.WriteMessage(new StreamError(StreamIndex, ex));
                }
            }, null);
        }
Пример #7
0
 public void Process(IStreamServer server)
 {
     ProcessStreams(server.Streams);
     ProcessListeners(server.Listeners);
 }
Пример #8
0
 public void Process(IStreamServer server)
 {
     server.WriteMessage(new HelloResponse());
 }