C#命名管道通信详解编程语言
2023-06-13 09:20:25 时间
C#命名管道通信
最近项目中要用c#进程间通信,以前常见的方法包括RMI、发消息等。但在Windows下面发消息需要有窗口,我们的程序是一个后台运行程序,发消息不试用。RMI又用的太多了,准备用管道通信来做消息通信。
管道通信以前在大学学过,包括匿名管道和命名管道。匿名管道只能用在父子进程之间;命名管道可以用在两个进程甚至跨服务器通信。这里给出命名管道的示例。
服务器端代码
private static void WaitData() 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(); Console.WriteLine(con); catch (IOException e) throw e;
客户端代码
private static void SendData() try using (NamedPipeClientStream pipeClient = new NamedPipeClientStream("localhost", "testpipe", PipeDirection.InOut, PipeOptions.None, TokenImpersonationLevel.None)) pipeClient.Connect(); using (StreamWriter sw = new StreamWriter(pipeClient)) sw.WriteLine("hahha"); sw.Flush(); catch (Exception ex) throw ex;
参考:
如何:使用命名管道进行网络进程间通信
C#中使用命名管道进行进程通信的实例
进程间通信 命名管道实现
8905.html
cjavawindows相关文章
- C#中Dock属性的作用[通俗易懂]
- [C#.NET 拾遗补漏]10:理解 volatile 关键字(去除 Release 版本反向优化)
- C#通过正则表达式抓取网页信息的类详解编程语言
- c#.NET中日志信息写入Windows日志中解决方案
- C#实现的最短路径分析
- C#正则表达式分解和转换IP地址实例(C#正则表达式大全c#正则表达式语法)
- c#实现服务器性能监控并发送邮件保存日志
- c#获取当前年的周数及当前月的天数示例代码
- js与C#进行时间戳转换
- C#串口通信实现方法
- C#类的创建与初始化实例解析
- 使用C#获取网页HTML源码的例子
- C#函数式编程中的标准高阶函数详解
- C#窗体间通讯的几种常用处理方法总结
- C#命令模式(CommandPattern)实例教程