退出阻塞选择调用

问题描述 投票:0回答:1

我正在调用第三方 API,它创建一个套接字,进行连接,然后通过将套接字传递到永远阻塞来调用 select API。

我无法访问套接字。有什么方法可以让我的应用程序进行选择调用而无需访问套接字?

我的平台是Windows。

c windows sockets posix-select
1个回答
1
投票

通常不能执行此操作,除非您可以访问所使用的套接字或选择集。

如果您可以访问套接字,请通过

closesocket()
将其关闭。 如果您可以访问读取集,请在那里填充一个虚拟套接字,然后参见上一点。

如果这些都不起作用,您可以:

  • 确保这发生在一个单独的线程中,您可以稍后杀死该线程(尽管这会造成一些相当明显的资源泄漏)
  • 尝试使用类似Detours(不推荐)
  • 之类的内容覆盖选择
  • 承认失败。
© www.soinside.com 2019 - 2024. All rights reserved.