微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何正常地停止正在Windows上的pipe道上侦听的服务器进程

我有一个命名pipe道服务器类似于http://msdn.microsoft.com/en-us/library/windows/desktop/aa365588(v=vs.85).aspx上的MSDN示例,并希望允许客户端发送导致服务器正常停止的“退出”消息。

所以在“InstanceThread()”,如果收到一个特殊的消息,我想停止服务器。

我试图通过closurespipe道句柄停止从“InstanceThread()”的单独线程主线程中的ConnectNamedPipe()的调用,但这是行不通的。

我已经尝试了各种各样的东西,其中包括closures整个pipe道,直接从InstanceThread退出,但是没有一个导致对ConnectNamedPipe()的调用停止。

如何在win32进程中显示“使用的内存”的百分比?

在Windows资源pipe理器中检测文件select

渲染QWidgets时出现大量页面错误

没有pipe理员权限,是否可以在Windows XP上运行Oracle?

有pipe道,叉子,dup2的问题

我玩SetNamedPipeHandleState(),但它使实现变得复杂,同样使用重叠的I / O似乎矫枉过正这个简单的要求。

那么有没有一种更简单的方法来获得ConnectNamedPipe()返回时应停止服务器进程,而不是无休止地等待客户端连接?

可以结合使用tail和grep吗?

我怎样才能把初始的inputinput进来,然后互动呢?

可以命令更多从标准input读取?

Windows服务安装“需要pipe理员访问”

你如何获得一个进程已经运行了多久?

如果你不需要支持Windows XP,你可以尝试使用CancelSynchronousIo 。

如果这个过程正在退出,你不需要做任何事情; 当Windows断开进程时,该线程将被终止。

或者,您可以简单地通过连接到命名管道来调用ConnectNamedPipe退出

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐