NamedPipeStream的使用具体案例如下:

using System;
using System.Data;
using System.Data.SQLite;
using System.IO;
using System.IO.Pipes;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks; namespace SupremeConsole
{
class Program
{
static void Main(string[] args)
{
#region 测试 NamedPipeStream
new Thread(new ThreadStart(PipeServerMessage)).Start();
new Thread(new ThreadStart(PipeClientMessage)).Start();
#endregion
}
public static void PipeServerMessage()
{
var s = new NamedPipeServerStream("pipedream", PipeDirection.InOut, , PipeTransmissionMode.Message);
s.WaitForConnection();
while (true)
{
byte[] msg = Encoding.UTF8.GetBytes("Hello");
s.Write(msg, , msg.Length);
Console.WriteLine($"PipeServer 服务端 数据:{Encoding.UTF8.GetString(ReadMessage(s))}");
}
} public static void PipeClientMessage()
{ var s = new NamedPipeClientStream("pipedream");
s.Connect();
s.ReadMode = PipeTransmissionMode.Message;
while (true)
{
Console.WriteLine($"PipeClient 收到数据:{Encoding.UTF8.GetString(ReadMessage(s))}");
Thread.Sleep(TimeSpan.FromSeconds());
byte[] msg = Encoding.UTF8.GetBytes("Hello right back!");
s.Write(msg, , msg.Length);
Console.WriteLine($"PipeClient 发送数据:Hello right back!");
//Thread.Sleep(TimeSpan.FromSeconds(2));
//s.WriteByte(200); // Send the value 200 back.
}
} static byte[] ReadMessage(PipeStream s)
{
MemoryStream ms = new MemoryStream();
byte[] buffer = new byte[0x1000]; // Read in 4 KB blocks
do
{
ms.Write(buffer, , s.Read(buffer, , buffer.Length));
}
while (!s.IsMessageComplete);
return ms.ToArray();
}
}
}

测试结果:

最新文章

  1. Zend Studio 中导出 PHP 语法颜色配置
  2. OpenSSL-for-IOS
  3. BOM/ROUTING/PO/WIP等模块常用查询
  4. 行列转换 pivot
  5. Linux CentOS6.4下Mysql数据库的安装与配置
  6. TP框架多表联查
  7. 【Android 错误记录】android.os.NetworkOnMainThreadException 异常问题
  8. Linux网络常用头文件说明
  9. find tar 压缩第一层目录,用于资料备份。
  10. Sticks<DFS>
  11. JAVA Timer定时器使用方法(二)
  12. volatile关键字和synchronized关键字
  13. [Linux]Linux 下的 Docker 安装与使用
  14. Python insert()方法--list
  15. 使用PowerDesigner 15进行逆向工程生成数据库图表时,列的注释问题
  16. Chrom Firefox 非安全端口访问
  17. 【九天教您南方cass 9.1】 11 方格网土方计算
  18. patch-test-and-proc
  19. linux 三剑客之awk
  20. python学习笔记10-文件操作

热门文章

  1. 笔谈kxmovie开源播放器库的使用
  2. DB2数据库中DB2字符串类型
  3. (摘录笔记)JAVA学习笔记SSH整合搭建项目
  4. 复盘一篇浅谈KNN的文章
  5. Python语言防坑小技巧
  6. Linux-网络RAID技术DRBD
  7. 玩转DNS服务器——Bind服务
  8. 51nod 2502 最多分成多少块
  9. vue cli 框架搭建
  10. datediff(date1,date2) 函数的使用