2012-04-18 40 views
0

我有一个使用C++/MFC编写的Windows服务应用程序,它通过Windows套接字建立HTTP连接。它采用WinHttp* APIs来完成所有与套接字相关的操作。这一切都很好,除非有人试图在通过套接字连接的过程中停止/卸载该服务(特别是在无法建立这种连接的情况下,比如说,如果我的Internet电缆被拔掉)套接字API在服务关闭之前不会返回几秒钟(显然,服务内部的机制等待我的套接字线程“优雅地完成”。)加速使用C++ for Windows终止套接字WinHttp API的方法

我的问题是,如果我有一个打开的套接字句柄,以及从WinHttpOpen(),WinHttpConnect()和WinHttpOpenRequest()的调用中获得的连接和请求句柄(HINTERNET类型)是否有任何方法来强制使任何其他可能与套接字一起工作的WinHttp * API返回立即?

PS。我想在主线程开始等待套接字线程关闭之前这样做(在卸载/停止服务之前)。

+0

据我所知,WinHttpOpen使用硬编码的blo通过连接()建立连接。您可能想要与其他(或您自己的)http库一起去满足要求。 – JosephH 2012-04-18 03:07:06

+0

嗯...这很糟糕,因为编写所有代码会很痛苦......但是,无论如何,谢谢! – ahmd0 2012-04-18 03:13:22

回答

0

[显然,服务内部的机制等待我的套接字线程完成“优雅“] - ?如果你知道这个问题的原因,为什么不你为什么要等待