2020-06-29

C# NamedPipeServerStream NamedPipeClientStream

The piped stream are bidirectional communcation.Meanwhile they can read and write.

Write the NamedPipeServerStream and NamedPipeClientStream in two different hosts.

Today I created a console application to host the NamedPipeServerStream at first,then add another console application in the same solution to host the NamedPipeClientStream. Right click the solution and click properties and select the Multiple startup projects and then set all of their start action as Start as below.

 

 NamedPipeServerStream part

using System;using System.Collections.Generic;using System.IO;using System.IO.Pipes;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace ConsoleApp42{ class Program {  static void Main(string[] args)  {   NamedPipeServerStreamDemo();   Console.ReadLine();  } 

static int ServerTicks = 0; static void NamedPipeServerStreamDemo() { using(NamedPipeServerStream serverStream=new NamedPipeServerStream("pipedStream202006291649")) { serverStream.WaitForConnection(); while(serverStream.IsConnected) { string msg = string.Empty; for (int i=0;i<10;i++) { msg += $" {ServerTicks++} server now is {DateTime.Now.ToString("yyyyMMddHHmmssffff")},Guid is {Guid.NewGuid()}"; } byte[] byteArr = Encoding.UTF8.GetBytes(msg); serverStream.Write(byteArr, 0, byteArr.Length); byte[] readBytes = new byte[2000]; serverStream.Read(readBytes, 0, readBytes.Length); Console.WriteLine(Encoding.UTF8.GetString(readBytes).Trim(new char[] { '\0' })); Thread.Sleep(2000); } } } }}

 

NamedPipeClientStream

using System;using System.Collections.Generic;using System.IO.Pipes;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp1{ class Program {  static void Main(string[] args)  {   NamedPipeClientStreamDemo();   Console.ReadLine();  }  static int ClientTicks = 0;  static void NamedPipeClientStreamDemo()  {   using (NamedPipeClientStream clientStream = new NamedPipeClientStream("pipedStream202006291649"))   {    clientStream.Connect();    while (clientStream.IsConnected)    {     byte[] clientBytes = new byte[2000];     clientStream.Read(clientBytes, 0, clientBytes.Length);     Console.WriteLine(Encoding.UTF8.GetString(clientBytes).Trim(new char[] { '\0' }));     string clientSendMsg = $"{ClientTicks++},Client now is {DateTime.Now.ToString("yyyyMMddHHmmssffff")}";     byte[] sendBytes = Encoding.UTF8.GetBytes(clientSendMsg);     clientStream.Write(sendBytes, 0, sendBytes.Length);    }   }  } }}

 

C# NamedPipeServerStream NamedPipeClientStream孙琦stadium淘粉吧官网亚马逊实行新规: 重新调整配送费和长期下调仓储费亚马逊CPC广告的五大质量得分因素及BID+功能Lazada备战9.9大促推新功能 / Shopee更新国际退货规则张家界自驾游最佳路线张家界自由行费用张家界自由行费用

No comments:

Post a Comment