⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chatserverdoc.h

📁 一个简易的聊天室程序
💻 H
字号:
// ChatServerDoc.h : interface of the CChatServerDoc class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_CHATSERVERDOC_H__E8E2AD0C_509F_11D6_9693_AF0E159D6826__INCLUDED_)
#define AFX_CHATSERVERDOC_H__E8E2AD0C_509F_11D6_9693_AF0E159D6826__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "lstnsock.h"
#include "clntsock.h"

#include <afxmt.h>

class CMsg;


class CChatServerSrvrItem;

#define JOINING_CHAT          1
#define LEAVING_CHAT          2
#define SENDING_CHATTERS_LIST 3
#define SENDING_NICKNAME      4
#define NORMAL_MESSAGE        5
#define DUPLICATE_NICKNAME    6
#define PRIVATE_MESSAGE       7
#define KICK_USER             8

class CChatServerDoc : public COleServerDoc
{
protected: // create from serialization only
	CChatServerDoc();
	DECLARE_DYNCREATE(CChatServerDoc)

// Attributes
public:
	CChatServerSrvrItem* GetEmbeddedItem()
		{ return (CChatServerSrvrItem*)COleServerDoc::GetEmbeddedItem(); }

	CListeningSocket* m_pSocket;
	CPtrList          m_msgPtr;
	CStringList       m_msgList;
	CStringList       m_pChattersList;
	CPtrList          m_chattersListPtr;

	CPtrList          m_connectionList;

	BOOL 	          bIsNewChatter;

	CString           m_ChattersList;

	CHARFORMAT        m_stdCF;


// Operations
public:
	void UpdateClients(int nCode);
	void ProcessPendingAccept();
	void ProcessPendingRead(CClientSocket* pSocket);
	CMsg* AssembleMsg(CClientSocket* pSocket , int nCode);
	CMsg* ReadMsg(CClientSocket* pSocket);
	void SendMsg(CClientSocket* pSocket, CMsg* pMsg);
	void CloseSocket(CClientSocket* pSocket);
	void Message(LPCTSTR lpszMessage , CHARFORMAT cf);
	BOOL DuplicateName(CString sName);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CChatServerDoc)
	protected:
	virtual COleServerItem* OnGetEmbeddedItem();
	public:
	virtual BOOL OnNewDocument();
	virtual void DeleteContents();
	virtual void Serialize(CArchive& ar);
	//}}AFX_VIRTUAL

// Implementation
public:
	void UpdateMessages();
	void UpdateConnections();
	void SendUpdatedList(CClientSocket* pSocket);
	void DeleteChatter(CMsg* pMsg, CString sName);
	void UpdateChattersList(CString string , CClientSocket* pSocket);
	void UpdateChattersNames(CString sName, CClientSocket* pSocket);

	virtual ~CChatServerDoc();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CChatServerDoc)
		// NOTE - the ClassWizard will add and remove member functions here.
		//    DO NOT EDIT what you see in these blocks of generated code !

	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CHATSERVERDOC_H__E8E2AD0C_509F_11D6_9693_AF0E159D6826__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -