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

ClientDlg.h 3.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. // ClientDlg.h : header file
  2. //
  3. #pragma once
  4. #include "afxwin.h"
  5. #include "../../../Src/HttpClient.h"
  6. #include "../../Global/helper.h"
  7. // CClientDlg dialog
  8. class CClientDlg : public CDialogEx, public CHttpClientListener
  9. {
  10. // Construction
  11. public:
  12. CClientDlg(CWnd* pParent = NULL); // standard constructor
  13. // Dialog Data
  14. enum { IDD = IDD_CLIENT_DIALOG };
  15. protected:
  16. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  17. virtual BOOL PreTranslateMessage(MSG* pMsg);
  18. // Implementation
  19. protected:
  20. HICON m_hIcon;
  21. // Generated message map functions
  22. virtual BOOL OnInitDialog();
  23. afx_msg void OnPaint();
  24. afx_msg HCURSOR OnQueryDragIcon();
  25. afx_msg void OnBnClickedHeaderAdd();
  26. afx_msg void OnBnClickedSend();
  27. void SendHttp();
  28. void SendWebSocket();
  29. afx_msg void OnBnClickedStart();
  30. afx_msg void OnBnClickedStop();
  31. afx_msg LRESULT OnUserInfoMsg(WPARAM wp, LPARAM lp);
  32. afx_msg void OnCbnSelchangeMethod();
  33. afx_msg int OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex);
  34. DECLARE_MESSAGE_MAP()
  35. public:
  36. void SetAppState(EnAppState state);
  37. private:
  38. virtual EnHandleResult OnSend(ITcpClient* pSender, CONNID dwConnID, const BYTE* pData, int iLength);
  39. virtual EnHandleResult OnReceive(ITcpClient* pSender, CONNID dwConnID, const BYTE* pData, int iLength);
  40. virtual EnHandleResult OnClose(ITcpClient* pSender, CONNID dwConnID, EnSocketOperation enOperation, int iErrorCode);
  41. virtual EnHandleResult OnConnect(ITcpClient* pSender, CONNID dwConnID);
  42. virtual EnHandleResult OnHandShake(ITcpClient* pSender, CONNID dwConnID);
  43. virtual EnHttpParseResult OnMessageBegin(IHttpClient* pSender, CONNID dwConnID);
  44. virtual EnHttpParseResult OnStatusLine(IHttpClient* pSender, CONNID dwConnID, USHORT usStatusCode, LPCSTR lpszDesc);
  45. virtual EnHttpParseResult OnHeader(IHttpClient* pSender, CONNID dwConnID, LPCSTR lpszName, LPCSTR lpszValue);
  46. virtual EnHttpParseResult OnHeadersComplete(IHttpClient* pSender, CONNID dwConnID);
  47. virtual EnHttpParseResult OnBody(IHttpClient* pSender, CONNID dwConnID, const BYTE* pData, int iLength);
  48. virtual EnHttpParseResult OnChunkHeader(IHttpClient* pSender, CONNID dwConnID, int iLength);
  49. virtual EnHttpParseResult OnChunkComplete(IHttpClient* pSender, CONNID dwConnID);
  50. virtual EnHttpParseResult OnMessageComplete(IHttpClient* pSender, CONNID dwConnID);
  51. virtual EnHttpParseResult OnUpgrade(IHttpClient* pSender, CONNID dwConnID, EnHttpUpgradeType enUpgradeType);
  52. virtual EnHttpParseResult OnParseError(IHttpClient* pSender, CONNID dwConnID, int iErrorCode, LPCSTR lpszErrorDesc);
  53. virtual EnHandleResult OnWSMessageHeader(IHttpClient* pSender, CONNID dwConnID, BOOL bFinal, BYTE iReserved, BYTE iOperationCode, const BYTE lpszMask[4], ULONGLONG ullBodyLen);
  54. virtual EnHandleResult OnWSMessageBody(IHttpClient* pSender, CONNID dwConnID, const BYTE* pData, int iLength);
  55. virtual EnHandleResult OnWSMessageComplete(IHttpClient* pSender, CONNID dwConnID);
  56. static void CheckSetCookie(IHttpClient* pHttpClient);
  57. static CStringA GetHeaderSummary(IHttpClient* pHttpClient, LPCSTR lpszSep = " ", int iSepCount = 0, BOOL bWithContentLength = TRUE);
  58. private:
  59. CButton m_Send;
  60. CListBox m_Info;
  61. CEdit m_Address;
  62. CEdit m_Port;
  63. CButton m_Async;
  64. CButton m_Start;
  65. CButton m_Stop;
  66. CComboBox m_Method;
  67. CComboBox m_Schema;
  68. CEdit m_Path;
  69. CEdit m_HeaderName;
  70. CEdit m_HeaderValue;
  71. CButton m_HeaderAdd;
  72. CListBox m_Headers;
  73. CEdit m_Body;
  74. BOOL m_bWebSocket;
  75. BOOL m_bAsyncConn;
  76. EnAppState m_enState;
  77. unique_ptr<IHttpClient> m_pClient;
  78. };