ServerDlg.h
Upload User: whzytd4
Upload Date: 2022-08-01
Package Size: 7346k
Code Size: 3k
Category:

WinSock-NDIS

Development Platform:

Visual C++

  1. // ServerDlg.h : header file
  2. //
  3. #if !defined(AFX_SERVERDLG_H__A83EBE53_9C93_4AEE_AED5_5ED55BB94A31__INCLUDED_)
  4. #define AFX_SERVERDLG_H__A83EBE53_9C93_4AEE_AED5_5ED55BB94A31__INCLUDED_
  5. #if _MSC_VER > 1000
  6. #pragma once
  7. #endif // _MSC_VER > 1000
  8. class CListenSocket;
  9. class CClientSocket;
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CServerDlg dialog
  12. class CServerDlg : public CDialog
  13. {
  14. // Construction
  15. public:
  16. CServerDlg(CWnd* pParent = NULL); //构造函数
  17. virtual ~CServerDlg(); //析构函数
  18. // Dialog Data
  19. //{{AFX_DATA(CServerDlg)
  20. enum { IDD = IDD_SERVER_MAIN_DIALOG };
  21. CListCtrl m_ctlUserList;
  22. //}}AFX_DATA
  23. // ClassWizard generated virtual function overrides
  24. //{{AFX_VIRTUAL(CServerDlg)
  25. protected:
  26. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  27. //}}AFX_VIRTUAL
  28. // Implementation
  29. public:
  30. BOOL Init(void); //初始化
  31. BOOL StartService(void); //启动服务
  32. BOOL ProcessPendingRead(CArchive *pArchiveIn,
  33. CArchive *pArchiveOut,CClientSocket *pClientSocket);//接收数据
  34. void ProcessPendingAccept(void); //接受客户端连接请求
  35. void ReleaseChatter(CClientSocket *pClientSocket); //当用户离线时删除用户
  36. void DeleteChatter(CClientSocket *pClientSocket); //用户登录密码错误或者重复登录时删除用户
  37. void DeleteAllChatter(void); //删除所有在线用户
  38. protected:
  39. void InitListCtrlSetting(void); //定义列表控件
  40. void InitUserList(void); //初始化用户列表
  41. void SaveUserList(CObList &obList); //保存用户信息
  42. void LoadUserList(CObList &obList); //读取用户信息
  43. void SaveOfflineMsg(CObList &obList); //保存离线消息
  44. void LoadOfflineMsg(CObList &obList); //读取离线消息
  45. void SendUserList(void); //发送用户列表
  46. void CopyUserList(CObList &obList); //复制用链表
  47. void DeleteTempUserList(CObList &obList); //删除临时链表
  48. BOOL UpdateUserList(const CUserInfo &userInfo, CClientSocket *pClientSocket);//更新用户链表
  49. void TransmitMsg(const CChatPacket &packet, CClientSocket *pClientSocket); //转发离线消息
  50. void UpdateServerListCtl(const CObList &obList); //更新服务器界面
  51. protected:
  52. HICON m_hIcon;
  53. // Generated message map functions
  54. //{{AFX_MSG(CServerDlg)
  55. virtual BOOL OnInitDialog();
  56. afx_msg void OnPaint();
  57. afx_msg HCURSOR OnQueryDragIcon();
  58. afx_msg void OnDestroy();
  59. afx_msg void OnRclickClientList(NMHDR* pNMHDR, LRESULT* pResult);
  60. afx_msg void OnServerListDeleteMenuitem();
  61. //}}AFX_MSG
  62. DECLARE_MESSAGE_MAP()
  63. CListenSocket *m_pListenSocket; //CListenSocket指针
  64. CImageList *m_pImageList; //图标列表指针
  65. CObList m_UserList; //用户链表
  66. CObList m_OfflineMsgList; //离线信息链表
  67. CObList m_ChatterList; //在线用户链表
  68. CCriticalSection m_csUserList; //保护用户链表临界区对象
  69. CCriticalSection m_csOfflineList;//保护离线信息链表临界区对象
  70. CCriticalSection m_csChatterList;//保护在线用户链表临界区对象
  71. };
  72. //{{AFX_INSERT_LOCATION}}
  73. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  74. #endif // !defined(AFX_SERVERDLG_H__A83EBE53_9C93_4AEE_AED5_5ED55BB94A31__INCLUDED_)