基本信息
源码名称:C#命名管道一对多进程间通讯,服务端和多客户端
源码大小:0.14M
文件格式:.zip
开发语言:C#
更新时间:2020-06-14
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
{
NamedPipeServerStream server = (NamedPipeServerStream)o.AsyncState;
server.EndWaitForConnection(o);
work();
StreamReader sr = new StreamReader(server);
StreamWriter sw = new StreamWriter(server);
sw.AutoFlush = true;
string clientName = server.GetImpersonationUserName();
string result = sr.ReadLine();
while (result != null)
{
sw.WriteLine("ok");
this.Invoke((MethodInvoker)delegate { richTextBox1.Text = "收到 " clientName " : " result "\r\n";});
result = sr.ReadLine();
}
server.Close();
}, pipeServer);
1、创建一个管道池,保持内部有一个待链接的管道实例
2、客户端去链接,系统会自动分配给客户端一个等待链接的服务端实例
3、当服务端链接后,再创建一个新的待链接的管道实例
4、当客户端断开链接或者超时,那么将自动销毁服务端实例
保持管道池中至少有1个待链接的实例,但是不能超过上限数量。
pipeServer.BeginWaitForConnection((o) =>
{
NamedPipeServerStream server = (NamedPipeServerStream)o.AsyncState;
server.EndWaitForConnection(o);
work();
StreamReader sr = new StreamReader(server);
StreamWriter sw = new StreamWriter(server);
sw.AutoFlush = true;
string clientName = server.GetImpersonationUserName();
string result = sr.ReadLine();
while (result != null)
{
sw.WriteLine("ok");
this.Invoke((MethodInvoker)delegate { richTextBox1.Text = "收到 " clientName " : " result "\r\n";});
result = sr.ReadLine();
}
server.Close();
}, pipeServer);