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

Windows中的socket和HANDLE有什么区别?

我正在尝试在Windows中运行Linux服务器。

在Linux中,套接字和文件描述符都是一样的。 某些系统API对于套接字和文件描述符都是可用的。

但是,我通过WIN API处理由Winsock和HANDLE(文件描述符)的套接字。

所以我需要知道一个整数是一个套接字或一个句柄。

由激活上下文引起的dynamic加载的DLL上的文件句柄泄漏

中断ID到名称映射

Windows可以处理跨越32位/ 64位边界的inheritance吗?

DirectX全屏窗口通过使用Windows API函数的窗口句柄进行窗口化

closures控制台时如何正确处理SIGBREAK?

现在问题是:

在Windows中socket()和open()的返回值是否相同?

如果它们总是不同,我可以编写自己的socket()和open()来包装系统的一个。 并logging来自系统API的返回值,无论整数是套接字还是HANDLE。

如果他们一样,我也不知道该怎么处理。

为什么我们调用Signal Handler两次?

python:相当于SIgalRM的窗口

以编程方式计算Windows上的进程的开始时间

通过Thread.list.size得到的线程号与通过/ proc的线程号不一样

如何获得属于某个进程的打开句柄的计数?

套接字句柄是Win32(NT内核)句柄,所以你可以在它们上使用ReadFile或者WriteFile。 还有与Winsock维护的句柄相关联的用户模式状态,这就是为什么您需要使用closesocket()而不是CloseHandle()。

open()返回与Win32句柄不同的CRT文件描述符。 您可以使用_open_osfhandle()创建一个CRT文件描述符。 但是这不是推荐用于套接字,因为你不能以干净的方式关闭文件。 你要么使用会泄漏Winsock用户模式状态的close(),要么使用会泄漏CRT描述符的closesocket()。

在Windows中socket()和open()的返回值是否相同?

Windows中的套接字句柄由WINSOCK子系统分配,该子系统根本不属于文件系统的一部分。

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

相关推荐