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

ServerDlg.h 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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(ITcpServer* pSender, SOCKET soListen);
  12. virtual EnHandleResult OnAccept(ITcpServer* pSender, CONNID dwConnID, SOCKET soClient);
  13. virtual EnHandleResult OnHandShake(ITcpServer* pSender, CONNID dwConnID);
  14. virtual EnHandleResult OnReceive(ITcpServer* pSender, CONNID dwConnID, const BYTE* pData, int iLength);
  15. virtual EnHandleResult OnSend(ITcpServer* pSender, CONNID dwConnID, const BYTE* pData, int iLength);
  16. virtual EnHandleResult OnClose(ITcpServer* pSender, CONNID dwConnID, EnSocketOperation enOperation, int iErrorCode);
  17. virtual EnHandleResult OnShutdown(ITcpServer* pSender);
  18. virtual EnHttpParseResult OnMessageBegin(IHttpServer* pSender, CONNID dwConnID);
  19. virtual EnHttpParseResult OnRequestLine(IHttpServer* pSender, CONNID dwConnID, LPCSTR lpszMethod, LPCSTR lpszUrl);
  20. virtual EnHttpParseResult OnHeader(IHttpServer* pSender, CONNID dwConnID, LPCSTR lpszName, LPCSTR lpszValue);
  21. virtual EnHttpParseResult OnHeadersComplete(IHttpServer* pSender, CONNID dwConnID);
  22. virtual EnHttpParseResult OnBody(IHttpServer* pSender, CONNID dwConnID, const BYTE* pData, int iLength);
  23. virtual EnHttpParseResult OnChunkHeader(IHttpServer* pSender, CONNID dwConnID, int iLength);
  24. virtual EnHttpParseResult OnChunkComplete(IHttpServer* pSender, CONNID dwConnID);
  25. virtual EnHttpParseResult OnMessageComplete(IHttpServer* pSender, CONNID dwConnID);
  26. virtual EnHttpParseResult OnUpgrade(IHttpServer* pSender, CONNID dwConnID, EnHttpUpgradeType enUpgradeType);
  27. virtual EnHttpParseResult OnParseError(IHttpServer* pSender, CONNID dwConnID, int iErrorCode, LPCSTR lpszErrorDesc);
  28. virtual EnHandleResult OnWSMessageHeader(IHttpServer* pSender, CONNID dwConnID, BOOL bFinal, BYTE iReserved, BYTE iOperationCode, const BYTE lpszMask[4], ULONGLONG ullBodyLen);
  29. virtual EnHandleResult OnWSMessageBody(IHttpServer* pSender, CONNID dwConnID, const BYTE* pData, int iLength);
  30. virtual EnHandleResult OnWSMessageComplete(IHttpServer* pSender, CONNID dwConnID);
  31. private:
  32. CStringA GetHeaderSummary(IHttpServer* pSender, CONNID dwConnID, LPCSTR lpszSep = " ", int iSepCount = 0, BOOL bWithContentLength = TRUE);
  33. public:
  34. CHttpServerListenerImpl(LPCTSTR lpszName)
  35. : m_strName (lpszName)
  36. {
  37. }
  38. public:
  39. CString m_strName;
  40. };
  41. // CServerDlg dialog
  42. class CServerDlg : public CDialogEx
  43. {
  44. // Construction
  45. public:
  46. CServerDlg(CWnd* pParent = NULL); // standard constructor
  47. // Dialog Data
  48. enum { IDD = IDD_SERVER_DIALOG };
  49. protected:
  50. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  51. virtual BOOL PreTranslateMessage(MSG* pMsg);
  52. // Implementation
  53. protected:
  54. HICON m_hIcon;
  55. // Generated message map functions
  56. virtual BOOL OnInitDialog();
  57. afx_msg void OnPaint();
  58. afx_msg HCURSOR OnQueryDragIcon();
  59. afx_msg void OnBnClickedStart();
  60. afx_msg void OnBnClickedStop();
  61. afx_msg void OnBnClickedDisconnect();
  62. afx_msg void OnBnClickedRelease();
  63. afx_msg void OnEnChangeConnId();
  64. afx_msg LRESULT CServerDlg::OnUserInfoMsg(WPARAM wp, LPARAM lp);
  65. afx_msg int OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex);
  66. DECLARE_MESSAGE_MAP()
  67. public:
  68. void SetAppState(EnAppState state);
  69. static int CALLBACK SIN_ServerNameCallback(LPCTSTR lpszServerName);
  70. private:
  71. CListBox m_Info;
  72. CButton m_Start;
  73. CButton m_Stop;
  74. CEdit m_ConnID;
  75. CButton m_DisConn;
  76. CButton m_Release;
  77. CButton m_RadioHttp;
  78. CButton m_RadioHttps;
  79. EnAppState m_enState;
  80. private:
  81. static const LPCTSTR ADDRESS;
  82. static const USHORT HTTP_PORT;
  83. static const USHORT HTTPS_PORT;
  84. CHttpServerListenerImpl m_HttpListener;
  85. CHttpServerListenerImpl m_HttpsListener;
  86. CHttpServer m_HttpServer;
  87. CHttpsServer m_HttpsServer;
  88. };