BLOG main image
분류 전체보기 (68)
excel.101 (0)
rewind (9)
(3)
(2)
목공 (3)
(3)
me2day (0)
The Ethereal Void (9)
코드 (14)
귀찮은것 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
'통신'에 해당되는 글 1건
2007. 8. 29. 09:36
간혹가다 두 개의 독립된 Process간의 통신이 필요한 경우가 있다. 기본적으로 .NET Remoting을 통해 구현을 할수도 있겠지만, 좀 더 간단한 구현을 원할 경우에는 Process 클래스에서 제공하는 표준 입출력 Redirection을 통해 두 개의 프로세스간에 메세지를 교환할 수 있다.

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "Program.exe";
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;

Process TargetProgram = new Process();
TargetProgram StartInfo = psi;
TargetProgram.OutputDataReceived += 
new DataReceivedEventHandler(TargetProgram_OutputDataReceived);

TargetProgram.Start();

//대상 프로세스의 표출 출력을 읽어들인다.
TargetProgram.BeginOutputReadLine();

void TargetProgram_OutputDataReceived(object sender, DataReceivedEventArgs e)
{    
    if (!String.IsNullOrEmpty(e.Data))
    {
         Console.WriteLine(e.Data);
    }
}
// "Program.exe"
Console.WriteLine("Hello :)");
반대의 경우로 송신을 원할 경우에는 대상의 표준 입력을 재설정하고, 표준 입력 스트림에 메세지를 송신하면 된다.
TargetProgram.StartInfo.RedirectStandardInput = true;
StreamWrite sw = TargetProgram.StandardInput;
myStreamWriter.WriteLine("Hello ;)");
반응형
prev"" #1 next