CTelnetView.h
上传用户:dzbfjx
上传日期:2015-04-22
资源大小:42k
文件大小:3k
源码类别:

Telnet客户端

开发平台:

Visual C++

  1. // CTelnetView.h : interface of the CTelnetView class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_CTelnetVIEW_H__243EC4A1_4FED_11D3_8C9E_00C0F0405B24__INCLUDED_)
  5. #define AFX_CTelnetVIEW_H__243EC4A1_4FED_11D3_8C9E_00C0F0405B24__INCLUDED_
  6. #if _MSC_VER >= 1000
  7. #pragma once
  8. #endif // _MSC_VER >= 1000
  9. class CTelnetDoc;
  10. class CClientSocket;
  11. const unsigned char IAC = 255;
  12. const unsigned char DO = 253;
  13. const unsigned char DONT = 254;
  14. const unsigned char WILL = 251;
  15. const unsigned char WONT = 252;
  16. const unsigned char SB = 250;
  17. const unsigned char SE = 240;
  18. const unsigned char IS = '0';
  19. const unsigned char SEND = '1';
  20. const unsigned char INFO = '2';
  21. const unsigned char VAR = '0';
  22. const unsigned char VALUE = '1';
  23. const unsigned char ESC = '2';
  24. const unsigned char USERVAR = '3';
  25. #define bufferLines 100
  26. #define dtX 8
  27. #define dtY 13
  28. #define ioBuffSize 1024
  29. class CTelnetView : public CScrollView
  30. {
  31. protected: // create from serialization only
  32. CTelnetView();
  33. DECLARE_DYNCREATE(CTelnetView)
  34. COLORREF cTextColor;
  35. COLORREF cBackgroundColor;
  36. CString cHostName;
  37. //telnet related operations and variables
  38. public:
  39. CClientSocket * cSock;
  40. void ArrangeReply(CString strOption);
  41. CString m_strNormalText;
  42. void RespondToOptions();
  43. void ProcessOptions();
  44. int TempCounter;
  45. CString m_strOptions;
  46. CStringList m_ListOptions;
  47. BOOL bNegotiating;
  48. BOOL bOptionsSent;
  49. CString m_strResp;
  50. CString m_strLine;
  51. unsigned char m_bBuf[ioBuffSize];
  52. BOOL GetLine( unsigned char * bytes, int nBytes, int& ndx );
  53. void DispatchMessage(CString strText);
  54. void ProcessMessage(CClientSocket * cSocket);
  55. char cText[80][bufferLines];
  56. long cCursX;
  57. void DrawCursor(CDC * pDC, BOOL pDraw);
  58. void DoDraw(CDC* pDC);
  59. private:
  60. void MessageReceived(LPCSTR pText);
  61. // Attributes
  62. public:
  63. CTelnetDoc* GetDocument();
  64. // Operations
  65. public:
  66. // Overrides
  67. // ClassWizard generated virtual function overrides
  68. //{{AFX_VIRTUAL(CTelnetView)
  69. public:
  70. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  71. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  72. protected:
  73. virtual void OnInitialUpdate(); // called first time after construct
  74. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  75. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  76. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  77. //}}AFX_VIRTUAL
  78. // Implementation
  79. public:
  80. virtual ~CTelnetView();
  81. #ifdef _DEBUG
  82. virtual void AssertValid() const;
  83. virtual void Dump(CDumpContext& dc) const;
  84. #endif
  85. protected:
  86. // Generated message map functions
  87. protected:
  88. //{{AFX_MSG(CTelnetView)
  89. afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  90. afx_msg void OnSize(UINT nType, int cx, int cy);
  91. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  92. //}}AFX_MSG
  93. DECLARE_MESSAGE_MAP()
  94. };
  95. #ifndef _DEBUG  // debug version in CTelnetView.cpp
  96. inline CTelnetDoc* CTelnetView::GetDocument()
  97.    { return (CTelnetDoc*)m_pDocument; }
  98. #endif
  99. /////////////////////////////////////////////////////////////////////////////
  100. //{{AFX_INSERT_LOCATION}}
  101. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  102. #endif // !defined(AFX_CTelnetVIEW_H__243EC4A1_4FED_11D3_8C9E_00C0F0405B24__INCLUDED_)