进程之间的通信-命名管道通信
Posted 当年小清新
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程之间的通信-命名管道通信相关的知识,希望对你有一定的参考价值。
管道通信包括匿名管道和命名管道,匿名管道只能用在父子进程之间,命名管道可以用在两个进程甚至跨服务器通信。
服务器端代码:
private void button1_Click(object sender, EventArgs e) { try { using (NamedPipeClientStream pipeClient = new NamedPipeClientStream("localhost", "testpipe", PipeDirection.InOut, PipeOptions.None, TokenImpersonationLevel.None)) { pipeClient.Connect(); using (StreamWriter sw = new StreamWriter(pipeClient)) { sw.WriteLine(textBox1.Text); sw.Flush(); } } } catch (Exception ex) { throw ex; } }
服务器端代码:
private async void Form1_Load(object sender, EventArgs e) { await Task.Run(() => { while (true) { using (NamedPipeServerStream pipeServer = new NamedPipeServerStream("testpipe", PipeDirection.InOut, 1)) { try { pipeServer.WaitForConnection(); pipeServer.ReadMode = PipeTransmissionMode.Byte; using (StreamReader sr = new StreamReader(pipeServer)) { string con = sr.ReadToEnd(); this.listBox1.Invoke(new Action(() => { listBox1.Items.Add(con); })); } } catch (IOException o) { throw o; } } } }); }
以上是关于进程之间的通信-命名管道通信的主要内容,如果未能解决你的问题,请参考以下文章