This commit is contained in:
66
PROMS/Volian.Pipe.Library/PipeClient.cs
Normal file
66
PROMS/Volian.Pipe.Library/PipeClient.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
/*********************************************************************************************
|
||||
* Copyright 2016 - Volian Enterprises, Inc. All rights reserved.
|
||||
* Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
||||
*********************************************************************************************/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO.Pipes;
|
||||
//using System.Linq;
|
||||
using System.Text;
|
||||
//using System.Threading.Tasks;
|
||||
|
||||
namespace Volian.Pipe.Library
|
||||
{
|
||||
public class PipeClient
|
||||
{
|
||||
private string _Name;
|
||||
public string Name
|
||||
{
|
||||
get { return _Name; }
|
||||
set { _Name = value; }
|
||||
}
|
||||
private int _TimeOut = 1000;
|
||||
public int TimeOut
|
||||
{
|
||||
get { return _TimeOut; }
|
||||
set { _TimeOut = value; }
|
||||
}
|
||||
public PipeClient(string name)
|
||||
{
|
||||
_Name = name;
|
||||
}
|
||||
public void Send(string msg)
|
||||
{
|
||||
try
|
||||
{
|
||||
NamedPipeClientStream pipeStream = new NamedPipeClientStream(".", Name, PipeDirection.Out, PipeOptions.Asynchronous);
|
||||
// The connect function will indefinitely wait for the pipe to become available
|
||||
// If that is not acceptable specify a maximum waiting time (in ms)
|
||||
pipeStream.Connect(TimeOut);
|
||||
byte[] _buffer = Encoding.UTF8.GetBytes(msg);
|
||||
pipeStream.BeginWrite(_buffer, 0, _buffer.Length, AsyncSend, pipeStream);
|
||||
}
|
||||
catch (TimeoutException ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
private void AsyncSend(IAsyncResult iar)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Get the pipe
|
||||
NamedPipeClientStream pipeStream = (NamedPipeClientStream)iar.AsyncState;
|
||||
// End the write
|
||||
pipeStream.EndWrite(iar);
|
||||
pipeStream.Flush();
|
||||
pipeStream.Close();
|
||||
pipeStream.Dispose();
|
||||
}
|
||||
catch (Exception oEX)
|
||||
{
|
||||
Console.WriteLine(oEX.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user