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