当前位置:  开发笔记 > 开发工具 > 正文

如何区分Win32插槽手柄与其他管道手柄?

如何解决《如何区分Win32插槽手柄与其他管道手柄?》经验,为你挑选了0个好方法。

我需要确定我的代码没有创建的句柄GetFileType()==FILE_TYPE_PIPE,是否为套接字.似乎没有这方面的API.

我尝试了以下内容.一般的想法是使用特定于套接字的函数并将失败视为非套接字.

getsockopt() - 这是我的第一次尝试.不幸的是,当同一(非套接字)句柄上的许多线程调用时,它似乎挂起.

WSAEnumNetworkEvents()- 这就是Gnulib所做的,但如果手柄套接字会产生不良副作用.

getpeername() - 这就是cygwin所做的,但是对于一些套接字也会失败.猜测错误是否意味着套接字似乎不可靠且未来安全.

我不介意解决方案是否仅适用于某些版本的Windows,例如Vista,在一般情况下,我总是可以回到其他方法.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有