2012-04-18 48 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

[顯然,服務內部的機制等待我的套接字線程完成「優雅「] - ?如果你知道這個問題的原因,爲什麼不你爲什麼要等待