C# 命名管道通信问题

ivanho 2014-01-23 05:12:48
通过.NET4.0实现了管道通信,在本机测试通过了.
实现了:客户端--->服务端;服务端--->客户端;


但是在把客户端放到别的电脑上做通信测试时,却提示:登录失败: 未知的用户名或错误密码


所以想问问大伙,是否有遇到此情况,如何解决!!


服务端: IP:192.168.11.206

NamedPipeServerStream pipeServer;
PipeSecurity pipeSa = new PipeSecurity();

pipeSa.SetAccessRule(new PipeAccessRule("Everyone",
PipeAccessRights.ReadWrite,
System.Security.AccessControl.AccessControlType.Allow));


pipeServer = new NamedPipeServerStream("testpipe",
PipeDirection.InOut, 4,
PipeTransmissionMode.Message,
PipeOptions.Asynchronous,
1024, 1024,
pipeSa, HandleInheritability.None);




客户端: IP:192.168.11.26

NamedPipeClientStream pipeClient;

pipeClient = new NamedPipeClientStream("192.168.11.206", "testpipe",
PipeDirection.InOut, PipeOptions.Asynchronous,
TokenImpersonationLevel.None, HandleInheritability.None);

pipeClient.Connect();
...全文
330 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wingswings 2014-05-06
  • 打赏
  • 举报
回复
不知道这问题,楼主解决没?我也遇到类似的问题了,有新进展的话,麻烦给发个短信,谢谢啊!!
  • 打赏
  • 举报
回复
超时是因为客户端连接不上,因为已经没有处于WaitForConnection()的服务端实例了 while(flag) { 用你上面第一段代码初始化pipeServer try { pipeServer.WaitForConnection(); 异步处理数据收发 } 。。 } flag是控制管道运行的状态开关
ivanho 2014-01-24
  • 打赏
  • 举报
回复
引用 7 楼 wyd1520 的回复:
我MSDN上看了,没有提到要登录的。。。不过里面有个方法SetAccessControl这个不知是啥,他没说明清楚
那个就是访问的规则,你留意到我初始化服务端了吗?我也有初始这个方法!! 现在的情况,已证实在没有设置WINDOWS登陆密码的电脑上可以通信... 但新的问题就出现了: 当一个服务端A,一个客户端建立起通信了A,想多加一个客户端A1连接服务端A,这个客户端在Connect时,却报:信号灯信号超时...
本拉灯 2014-01-24
  • 打赏
  • 举报
回复
我MSDN上看了,没有提到要登录的。。。不过里面有个方法SetAccessControl这个不知是啥,他没说明清楚
ivanho 2014-01-24
  • 打赏
  • 举报
回复
引用 5 楼 wyd1520 的回复:
不要用IP要用计算机名 就是同网的计算机名试试吧。
试过了,现在的情况是,把服务端放到了没有设置WINDOWS登陆密码的,IP为: 192.168.11.26(原客户端机器)的电脑里,客户端放到了有设置WINDOWS登陆密码的,IP为: 192.168.11.206(原服务端机器)的电脑里,这样,就能通信了...奇了怪了,所以今天开始验证,是否在没有设置WINDOWS登陆密码的电脑里,可以通用并可以互相通信
本拉灯 2014-01-23
  • 打赏
  • 举报
回复
引用 4 楼 ivanho 的回复:
[quote=引用 1 楼 Hsuifengershi 的回复:] 看看参数对不 别的机器和你自己的机器环境是不一样的 随便找个机器调试下 额可以的花
额...现在可是在测试通用性哦...要是这样随机都不行的话,实验又有何必要呢?? [/quote] 不要用IP要用计算机名 就是同网的计算机名试试吧。
ivanho 2014-01-23
  • 打赏
  • 举报
回复
引用 1 楼 Hsuifengershi 的回复:
看看参数对不 别的机器和你自己的机器环境是不一样的 随便找个机器调试下 额可以的花
额...现在可是在测试通用性哦...要是这样随机都不行的话,实验又有何必要呢??
ivanho 2014-01-23
  • 打赏
  • 举报
回复
引用 2 楼 wyd1520 的回复:
登录失败: 未知的用户名或错误密码 跨机器的用户名密码的,目标机器的。帐号
这个...可是...在管道的服务端中,没有这几个参数可以传进去呀!!! 难道我真的是初始化错了服务端,那么...怎样初始化才是正确呢!!!
本拉灯 2014-01-23
  • 打赏
  • 举报
回复
登录失败: 未知的用户名或错误密码 跨机器的用户名密码的,目标机器的。帐号
  • 打赏
  • 举报
回复
看看参数对不 别的机器和你自己的机器环境是不一样的 随便找个机器调试下 额可以的花

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧