ServerDlg.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. // ServerDlg.h : header file
  2. //
  3. #pragma once
  4. #include "afxwin.h"
  5. #include "../../../Src/HttpServer.h"
  6. #include "../../Global/helper.h"
  7. class CServerDlg;
  8. class CHttpServerListenerImpl : public CHttpServerListener
  9. {
  10. private:
  11. virtual EnHandleResult OnPrepareListen(SOCKET soListen);
  12. virtual EnHandleResult OnAccept(CONNID dwConnID, SOCKET soClient);
  13. virtual EnHandleResult OnHandShake(CONNID dwConnID);
  14. virtual EnHandleResult OnReceive(CONNID dwConnID, const BYTE* pData, int iLength);
  15. virtual EnHandleResult OnSend(CONNID dwConnID, const BYTE* pData, int iLength);
  16. virtual EnHandleResult OnClose(CONNID dwConnID, EnSocketOperation enOperation, int iErrorCode);
  17. virtual EnHandleResult OnShutdown();
  18. virtual EnHttpParseResult OnMessageBegin(CONNID dwConnID);
  19. virtual EnHttpParseResult OnRequestLine(CONNID dwConnID, LPCSTR lpszMethod, LPCSTR lpszUrl);
  20. virtual EnHttpParseResult OnHeader(CONNID dwConnID, LPCSTR lpszName, LPCSTR lpszValue);
  21. virtual EnHttpParseResult OnHeadersComplete(CONNID dwConnID);
  22. virtual EnHttpParseResult OnBody(CONNID dwConnID, const BYTE* pData, int iLength);
  23. virtual EnHttpParseResult OnChunkHeader(CONNID dwConnID, int iLength);
  24. virtual EnHttpParseResult OnChunkComplete(CONNID dwConnID);
  25. virtual EnHttpParseResult OnMessageComplete(CONNID dwConnID);
  26. virtual EnHttpParseResult OnUpgrade(CONNID dwConnID, EnHttpUpgradeType enUpgradeType);
  27. virtual EnHttpParseResult OnParseError(CONNID dwConnID, int iErrorCode, LPCSTR lpszErrorDesc);
  28. public:
  29. void SetServer(LPCTSTR lpszName, IHttpServer* pServer)
  30. {
  31. m_strName = lpszName;
  32. m_pServer = pServer;
  33. }
  34. CStringA GetHeaderSummary(CONNID dwConnID, LPCSTR lpszSep = " ", int iSepCount = 0, BOOL bWithContentLength = TRUE);
  35. public:
  36. CHttpServerListenerImpl(CServerDlg* pDlg)
  37. : m_pDlg (pDlg)
  38. , m_pServer (nullptr)
  39. {
  40. }
  41. public:
  42. CServerDlg* m_pDlg;
  43. IHttpServer* m_pServer;
  44. CString m_strName;
  45. };
  46. // CServerDlg dialog
  47. class CServerDlg : public CDialogEx
  48. {
  49. // Construction
  50. public:
  51. CServerDlg(CWnd* pParent = NULL); // standard constructor
  52. // Dialog Data
  53. enum { IDD = IDD_SERVER_DIALOG };
  54. protected:
  55. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  56. virtual BOOL PreTranslateMessage(MSG* pMsg);
  57. // Implementation
  58. protected:
  59. HICON m_hIcon;
  60. // Generated message map functions
  61. virtual BOOL OnInitDialog();
  62. afx_msg void OnPaint();
  63. afx_msg HCURSOR OnQueryDragIcon();
  64. afx_msg void OnBnClickedStart();
  65. afx_msg void OnBnClickedStop();
  66. afx_msg void OnBnClickedDisconnect();
  67. afx_msg void OnBnClickedRelease();
  68. afx_msg void OnEnChangeConnId();
  69. afx_msg LRESULT CServerDlg::OnUserInfoMsg(WPARAM wp, LPARAM lp);
  70. afx_msg int OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex);
  71. DECLARE_MESSAGE_MAP()
  72. public:
  73. void SetAppState(EnAppState state);
  74. private:
  75. CListBox m_Info;
  76. CButton m_Start;
  77. CButton m_Stop;
  78. CEdit m_ConnID;
  79. CButton m_DisConn;
  80. CButton m_Release;
  81. CButton m_RadioHttp;
  82. CButton m_RadioHttps;
  83. EnAppState m_enState;
  84. private:
  85. static const LPCTSTR ADDRESS;
  86. static const LPCTSTR HTTP_NAME;
  87. static const LPCTSTR HTTPS_NAME;
  88. static const USHORT HTTP_PORT;
  89. static const USHORT HTTPS_PORT;
  90. CHttpServerListenerImpl m_HttpListener;
  91. CHttpServerListenerImpl m_HttpsListener;
  92. CHttpServer m_HttpServer;
  93. CHttpsServer m_HttpsServer;
  94. };