/// <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; } }
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(); }
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); }
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)); } }
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)); } }
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); }
public void Process(IStreamServer server) { ProcessStreams(server.Streams); ProcessListeners(server.Listeners); }
public void Process(IStreamServer server) { server.WriteMessage(new HelloResponse()); }