开源的socket服务端客户端,支持C# C++

ServerDlg.h 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. // ServerDlg.h : header file
  2. //
  3. #pragma once
  4. #include "afxwin.h"
  5. #include "../../../Src/HPSocket4C-SSL.h"
  6. #include "../../Global/helper.h"
  7. // CServerDlg dialog
  8. class CServerDlg : public CDialogEx
  9. {
  10. // Construction
  11. public:
  12. CServerDlg(CWnd* pParent = NULL); // standard constructor
  13. ~CServerDlg(); // standard destructor
  14. // Dialog Data
  15. enum { IDD = IDD_SERVER_DIALOG };
  16. protected:
  17. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  18. virtual BOOL PreTranslateMessage(MSG* pMsg);
  19. // Implementation
  20. protected:
  21. HICON m_hIcon;
  22. // Generated message map functions
  23. virtual BOOL OnInitDialog();
  24. afx_msg void OnPaint();
  25. afx_msg HCURSOR OnQueryDragIcon();
  26. afx_msg void OnBnClickedStart();
  27. afx_msg void OnBnClickedStop();
  28. afx_msg void OnBnClickedDisconnect();
  29. afx_msg void OnBnClickedRelease();
  30. afx_msg void OnEnChangeConnId();
  31. afx_msg LRESULT CServerDlg::OnUserInfoMsg(WPARAM wp, LPARAM lp);
  32. afx_msg int OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex);
  33. DECLARE_MESSAGE_MAP()
  34. public:
  35. void SetAppState(EnAppState state);
  36. static int CALLBACK SIN_ServerNameCallback(LPCTSTR lpszServerName);
  37. private:
  38. static En_HP_HandleResult __stdcall OnPrepareListen(HP_Server pSender, SOCKET soListen);
  39. static En_HP_HandleResult __stdcall OnAccept(HP_Server pSender, HP_CONNID dwConnID, SOCKET soClient);
  40. static En_HP_HandleResult __stdcall OnHandShake(HP_Server pSender, HP_CONNID dwConnID);
  41. static En_HP_HandleResult __stdcall OnReceive(HP_Server pSender, HP_CONNID dwConnID, const BYTE* pData, int iLength);
  42. static En_HP_HandleResult __stdcall OnSend(HP_Server pSender, HP_CONNID dwConnID, const BYTE* pData, int iLength);
  43. static En_HP_HandleResult __stdcall OnClose(HP_Server pSender, HP_CONNID dwConnID, EnSocketOperation enOperation, int iErrorCode);
  44. static En_HP_HandleResult __stdcall OnShutdown(HP_Server pSender);
  45. static En_HP_HttpParseResult __stdcall OnMessageBegin(HP_HttpServer pSender, HP_CONNID dwConnID);
  46. static En_HP_HttpParseResult __stdcall OnRequestLine(HP_HttpServer pSender, HP_CONNID dwConnID, LPCSTR lpszMethod, LPCSTR lpszUrl);
  47. static En_HP_HttpParseResult __stdcall OnHeader(HP_HttpServer pSender, HP_CONNID dwConnID, LPCSTR lpszName, LPCSTR lpszValue);
  48. static En_HP_HttpParseResult __stdcall OnHeadersComplete(HP_HttpServer pSender, HP_CONNID dwConnID);
  49. static En_HP_HttpParseResult __stdcall OnBody(HP_HttpServer pSender, HP_CONNID dwConnID, const BYTE* pData, int iLength);
  50. static En_HP_HttpParseResult __stdcall OnChunkHeader(HP_HttpServer pSender, HP_CONNID dwConnID, int iLength);
  51. static En_HP_HttpParseResult __stdcall OnChunkComplete(HP_HttpServer pSender, HP_CONNID dwConnID);
  52. static En_HP_HttpParseResult __stdcall OnMessageComplete(HP_HttpServer pSender, HP_CONNID dwConnID);
  53. static En_HP_HttpParseResult __stdcall OnUpgrade(HP_HttpServer pSender, HP_CONNID dwConnID, EnHttpUpgradeType enUpgradeType);
  54. static En_HP_HttpParseResult __stdcall OnParseError(HP_HttpServer pSender, HP_CONNID dwConnID, int iErrorCode, LPCSTR lpszErrorDesc);
  55. static En_HP_HandleResult __stdcall OnWSMessageHeader(HP_HttpServer pSender, HP_CONNID dwConnID, BOOL bFinal, BYTE iReserved, BYTE iOperationCode, const BYTE lpszMask[4], ULONGLONG ullBodyLen);
  56. static En_HP_HandleResult __stdcall OnWSMessageBody(HP_HttpServer pSender, HP_CONNID dwConnID, const BYTE* pData, int iLength);
  57. static En_HP_HandleResult __stdcall OnWSMessageComplete(HP_HttpServer pSender, HP_CONNID dwConnID);
  58. private:
  59. CStringA GetHeaderSummary(HP_HttpServer pSender, HP_CONNID dwConnID, LPCSTR lpszSep = " ", int iSepCount = 0, BOOL bWithContentLength = TRUE);
  60. LPCTSTR GetSenderName(HP_HttpServer pSender);
  61. private:
  62. CListBox m_Info;
  63. CButton m_Start;
  64. CButton m_Stop;
  65. CEdit m_ConnID;
  66. CButton m_DisConn;
  67. CButton m_Release;
  68. CButton m_RadioHttp;
  69. CButton m_RadioHttps;
  70. EnAppState m_enState;
  71. private:
  72. static const LPCTSTR ADDRESS;
  73. static const USHORT HTTP_PORT;
  74. static const USHORT HTTPS_PORT;
  75. static CServerDlg* m_spThis;
  76. HP_HttpServer m_HttpServer;
  77. HP_HttpsServer m_HttpsServer;
  78. HP_HttpServerListener m_HttpServerListener;
  79. };