zoukankan      html  css  js  c++  java
  • 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[] { '' })); 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[] { '' }));
                        string clientSendMsg = $"{ClientTicks++},Client now is {DateTime.Now.ToString("yyyyMMddHHmmssffff")}";
                        byte[] sendBytes = Encoding.UTF8.GetBytes(clientSendMsg);
                        clientStream.Write(sendBytes, 0, sendBytes.Length);
                    }
                }
            }
        }
    }
  • 相关阅读:
    [网络流24题]骑士共存问题
    [网络流24题]魔术球问题
    [网络流24题]飞行员配对方案问题
    bzoj2741【FOTILE模拟赛】L(可持久化trie树+分块)
    bzoj4103[Thu Summer Camp 2015]异或运算(可持久化trie树)
    bzoj[3881]Divljak(dfs序+树状数组+fail树)
    bzoj1444 有趣的游戏(AC自动机+矩阵乘法)
    bzoj1195 最短母串
    bzoj2938 病毒
    poj 3134 Power Calculus (IDA*)
  • 原文地址:https://www.cnblogs.com/Fred1987/p/13209275.html
Copyright © 2011-2022 走看看