2010-04-21 72 views
1

我正在爲Windows制定一些網絡編程,現在正在制定HTTP協議。是否可以在套接字級別處理代理?

是否可以在套接字級別處理擴展?和SSL代理?如果不是,Windows是否提供了更高級別的內容來處理它們?我不想使用第三方庫,但如果沒有其他方法,我會重新考慮它。

指向示例的指針也很棒。

非常感謝。

回答

0

如果僅對HTTP協議感興趣,則可以使用Windows Internet(WinINet)API http://msdn.microsoft.com/en-us/library/aa383630%28v=VS.85%29.aspx或Windows HTTP Services(WinHTTP)http://msdn.microsoft.com/en-us/library/aa384273%28v=VS.85%29.aspx。使用此API的優點是:

  • 他們是微軟的標準,並在許多微軟產品的
  • 他們是操作系統的一部分,它在任何Windows使用
  • 你可以找到很多的幾乎每個主題的例子

你打算用什麼樣的代理工作?

+0

感謝您的信息,我會研究它,因爲我只需要HTTP(將來可能是HTTP)。我計劃允許程序使用系統範圍的代理配置和本地進行連接和操作(位於應用程序配置:用戶,密碼,服務器和端口中)。現在我已經使用普通套接字(即send/recv)編寫了邏輯,但我不知道我是否可以在這個低級別處理代理服務器。 – Marta 2010-04-21 14:45:38

+0

如果我理解你正確的話,你已經用Web服務器實現了一個簡單的通信協議,並且如果客戶端使用中間代理服務器連接到你的Web服務器,你想修改代碼非常靈活。在這種情況下,您可以輕鬆地將套接字API替換爲WinINet或WinHTTP API。請參閱http://msdn.microsoft.com/en-us/library/aa383144%28v=VS.85%29.aspx和WinINet上的WinHTTP的代碼示例http://msdn.microsoft.com/en-us/library /aa383996%28v=VS.85%29.aspx。唯一的限制是WinINet不應該用於服務(僅在GUI應用程序中),因爲可能存在對話框。 – Oleg 2010-04-21 15:59:27

+0

是的,你完全理解我。非常感謝,我將使用這些API中的任何一個:)。 – Marta 2010-04-21 16:09:05