首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命名管道232管道正在关闭。

命名管道232管道正在关闭。
EN

Stack Overflow用户
提问于 2013-10-28 13:50:07
回答 2查看 11.3K关注 0票数 4

Hye我使用命名管道进行rpc,当服务器收到一个写入管道的异常(例如客户端突然关闭),我捕获异常,调用断开的命名管道,然后尝试调用connectNamedPipe,得到232:管道正在关闭。我的问题是如何解决这个问题,所以当我得到一个异常后,再开始监听管道。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-19 20:35:59

对不起,但不知道是不是太晚了。这条线似乎挺旧的。

但是为了那些像我一样在这里搜索这个问题的人的利益。

线程启动器面临的问题很简单,客户端无法在断开连接后重新连接到同一个管道!

因此,如果客户端的管道突然关闭,服务器端的管道也就死了。如果您想要重新连接,服务器需要提供另一个CreateNamedPipe函数来获得新连接并要求客户端尝试它。

关键是对管道的理解。

票数 5
EN

Stack Overflow用户

发布于 2017-03-28 13:01:28

我也遇到过同样的问题,但和里昂有点不同。

在我的例子中,ReadFile()返回232“管道正在关闭”。传达的信息是误导。管道没有被关闭。ReadFile()只是在没有读取任何数据的情况下返回。

由于我创建的管道是非阻塞的,所以ReadFile()在没有数据的情况下立即返回是非常有意义的。

如果您检查winerror.h中的错误代码,即"ERROR_NO_DATA",这比“管道正在关闭”要好得多

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19636548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档