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

ClientDlg.h 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. // ClientDlg.h : header file
  2. //
  3. #pragma once
  4. #include "afxwin.h"
  5. #include "../../../Src/HPSocket4C-SSL.h"
  6. #include "../../Global/helper.h"
  7. // CClientDlg dialog
  8. class CClientDlg : public CDialogEx
  9. {
  10. // Construction
  11. public:
  12. CClientDlg(CWnd* pParent = NULL); // standard constructor
  13. ~CClientDlg(); // standard destructor
  14. // Dialog Data
  15. enum { IDD = IDD_CLIENT_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 OnBnClickedHeaderAdd();
  27. afx_msg void OnBnClickedSend();
  28. void SendHttp();
  29. void SendWebSocket();
  30. afx_msg void OnBnClickedStart();
  31. afx_msg void OnBnClickedStop();
  32. afx_msg LRESULT OnUserInfoMsg(WPARAM wp, LPARAM lp);
  33. afx_msg void OnCbnSelchangeMethod();
  34. afx_msg int OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex);
  35. DECLARE_MESSAGE_MAP()
  36. public:
  37. void SetAppState(EnAppState state);
  38. private:
  39. static En_HP_HandleResult __stdcall OnSend(HP_Client pSender, CONNID dwConnID, const BYTE* pData, int iLength);
  40. static En_HP_HandleResult __stdcall OnReceive(HP_Client pSender, CONNID dwConnID, const BYTE* pData, int iLength);
  41. static En_HP_HandleResult __stdcall OnClose(HP_Client pSender, CONNID dwConnID, EnSocketOperation enOperation, int iErrorCode);
  42. static En_HP_HandleResult __stdcall OnConnect(HP_Client pSender, CONNID dwConnID);
  43. static En_HP_HandleResult __stdcall OnHandShake(HP_Client pSender, CONNID dwConnID);
  44. static En_HP_HttpParseResult __stdcall OnMessageBegin(HP_HttpClient pSender, CONNID dwConnID);
  45. static En_HP_HttpParseResult __stdcall OnStatusLine(HP_HttpClient pSender, CONNID dwConnID, USHORT usStatusCode, LPCSTR lpszDesc);
  46. static En_HP_HttpParseResult __stdcall OnHeader(HP_HttpClient pSender, CONNID dwConnID, LPCSTR lpszName, LPCSTR lpszValue);
  47. static En_HP_HttpParseResult __stdcall OnHeadersComplete(HP_HttpClient pSender, CONNID dwConnID);
  48. static En_HP_HttpParseResult __stdcall OnBody(HP_HttpClient pSender, CONNID dwConnID, const BYTE* pData, int iLength);
  49. static En_HP_HttpParseResult __stdcall OnChunkHeader(HP_HttpClient pSender, CONNID dwConnID, int iLength);
  50. static En_HP_HttpParseResult __stdcall OnChunkComplete(HP_HttpClient pSender, CONNID dwConnID);
  51. static En_HP_HttpParseResult __stdcall OnMessageComplete(HP_HttpClient pSender, CONNID dwConnID);
  52. static En_HP_HttpParseResult __stdcall OnUpgrade(HP_HttpClient pSender, CONNID dwConnID, EnHttpUpgradeType enUpgradeType);
  53. static En_HP_HttpParseResult __stdcall OnParseError(HP_HttpClient pSender, CONNID dwConnID, int iErrorCode, LPCSTR lpszErrorDesc);
  54. static En_HP_HandleResult __stdcall OnWSMessageHeader(HP_HttpClient pSender, HP_CONNID dwConnID, BOOL bFinal, BYTE iReserved, BYTE iOperationCode, const BYTE lpszMask[4], ULONGLONG ullBodyLen);
  55. static En_HP_HandleResult __stdcall OnWSMessageBody(HP_HttpClient pSender, HP_CONNID dwConnID, const BYTE* pData, int iLength);
  56. static En_HP_HandleResult __stdcall OnWSMessageComplete(HP_HttpClient pSender, HP_CONNID dwConnID);
  57. static void CheckSetCookie(HP_HttpClient pSender);
  58. static CStringA GetHeaderSummary(HP_HttpClient pSender, LPCSTR lpszSep = " ", int iSepCount = 0, BOOL bWithContentLength = TRUE);
  59. private:
  60. CButton m_Send;
  61. CListBox m_Info;
  62. CEdit m_Address;
  63. CEdit m_Port;
  64. CButton m_Async;
  65. CButton m_Start;
  66. CButton m_Stop;
  67. CComboBox m_Method;
  68. CComboBox m_Schema;
  69. CEdit m_Path;
  70. CEdit m_HeaderName;
  71. CEdit m_HeaderValue;
  72. CButton m_HeaderAdd;
  73. CListBox m_Headers;
  74. CEdit m_Body;
  75. BOOL m_bWebSocket;
  76. BOOL m_bAsyncConn;
  77. EnAppState m_enState;
  78. static CClientDlg* m_spThis;
  79. HP_HttpClientListener m_HttpClientListener;
  80. HP_HttpClient m_HttpClient;
  81. };