HttpSocket.h
上传用户:dengkfang
上传日期:2008-12-30
资源大小:5233k
文件大小:3k
源码类别:

CA认证

开发平台:

Visual C++

  1. /*
  2. Module : HttpSocket.h
  3. Purpose: Defines the interface for a simple MFC socket wrapper class
  4. Created: PJN / 22-04-1999
  5. Copyright (c) 1999 - 2005 by PJ Naughter.  (Web: www.naughter.com, Email: pjna@naughter.com)
  6. All rights reserved.
  7. Copyright / Usage Details:
  8. You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise) 
  9. when your product is released in binary form. You are allowed to modify the source code in any way you want 
  10. except you cannot modify the copyright details at the top of each module. If you want to distribute source 
  11. code with your application, then you are only allowed to distribute versions released by the author. This is 
  12. to maintain a single distribution point for the source code. 
  13. */
  14. /////////////////////////////// Defines ///////////////////////////////////////
  15. #ifndef __HTTPSOCKET_H__
  16. #define __HTTPSOCKET_H__
  17. #ifndef W3MFC_EXT_CLASS
  18. #define W3MFC_EXT_CLASS
  19. #endif
  20. /////////////////////////////// Includes //////////////////////////////////////
  21. #include "SocMFC.h"
  22. #include "HttpRequest.h"
  23. #include "W3MFC.h"
  24. #ifdef W3MFC_SSL_SUPPORT
  25. #include "OpenSSLMfc.h"
  26. #endif
  27. #include "WTimer.h" //If the code fails to compile because of this missing include then you need to download 
  28.                     //the CWaitableTimer class from my web site and copy the relavent files to the W3MFC directory
  29. /////////////////////////////// Classes ///////////////////////////////////////
  30. class CHttpClient;
  31. class W3MFC_EXT_CLASS CHttpSocket : public CWSocket
  32. {
  33. public:
  34. //methods
  35.   BOOL SplitRequestLine(LPSTR pszLine, CString& sField, CString& sValue);
  36.   BOOL SplitRequestLine(const CString& sLine, CString& sField, CString& sValue);
  37.   BOOL ReadResponse(CHttpRequest& request, DWORD dwTimeout, int nGrowBy, CHttpClient& client);
  38.   BOOL ReadResponse(CHttpRequest& request, DWORD dwTimeout, int nGrowBy, CHttpClient& client, CWaitableTimer& timer, HANDLE hStopEvent, HANDLE hDataEvent);
  39.   void SendWithRetry(void* pBuffer, int nBuf, DWORD dwTimeout);
  40. #ifdef W3MFC_SSL_SUPPORT
  41.   BOOL ReadResponse(CHttpRequest& request, DWORD dwTimeout, int nGrowBy, CSSL& ssl, CHttpClient& client);
  42.   BOOL ReadResponse(CHttpRequest& request, DWORD dwTimeout, int nGrowBy, CSSL& ssl, CHttpClient& client, CWaitableTimer& timer, HANDLE hStopEvent, HANDLE hDataEvent);
  43.   void SendWithRetry(void* pBuffer, int nBuf, DWORD dwTimeout, CSSL& ssl);
  44. #endif
  45. protected:
  46.   CEvent m_WSABlockEvent;  //Used to implemented SocketSendWithRetry
  47. };
  48. #endif //__HTTPSOCKET_H__