2022年2022年聊天程序 .pdf
《2022年2022年聊天程序 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年聊天程序 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络聊天室一、服务器端应用程序ChatServer 1、创建 MFC 应用程序ChatServer,第一步选择 “基于对话框” ,在第二步中选中 “Windows Sockets”复选框,然后点击“完成”。2、设计对话框界面,将初始的两个按钮和静态文本删除,添加一个列表框,范围合适即可,修改该类表框的ID 为 IDC_LIST_MSG ,其 Sort 属性为 false,并且为该控件添加CListBox类型的变量m_ctrlMsg 。3、添加新类CClientSocket ,该类的父类为CSocket,并在该类所属的clientsocket.h 文件中类定义体前加入代码:class CChat
2、ServerDlg;。4、为 CClientSocket 类重写构造函数:CClientSocket(CChatServerDlg* pDlg);,添加两个消息响应函数 OnReceive()和 OnSend(),添加成员变量CChatServerDlg* m_pDlg 。5、在重写的构造函数中添加代码:m_pDlg=pDlg; 6、添加新类CListeningSocket ,该类的父类为CSocket,并在该类所属的clientsocket.h 文件中类定义体前加入代码:class CChatServerDlg;。7、为 CListeningSocket 类重写构造函数:CListening
3、Socket(CChatServerDlg* pDlg);,添加消息响应函数OnAccept() ,添加成员变量CChatServerDlg* m_pDlg 。8、在重写的构造函数中添加代码:m_pDlg=pDlg; 9、在 CClientSocket.h 和 CListeningSocket.h 文件中加入 #include “ chatserverdlg.h”10、 在 CChatServerDlg 类所属的头文件chatserverdlg.h 中添加类声明: class CListeningSocket;和class CClientSocket; , 和 包 含 文 件 声 明 : #i
4、nclude “clientsocket.h”和 #include “ listeningsocket.h”。11、为 CChatServerDlg 类添加三个成员函数:void ProcessPendingAccept(); void ProcessPendingRead(CClientSocket* pSocket); void UpdateClient(char *buffer, int nBufferSize); 添加两个成员变量:CListeningSocket* m_pSocket; CPtrList m_connectionList; 12、为这三个成员函数编写代码:void C
5、ChatServerDlg:ProcessPendingAccept() CClientSocket* pSocket=new CClientSocket(this); if(m_pSocket-Accept(*pSocket) m_connectionList.AddTail(pSocket); else delete pSocket; void CChatServerDlg:ProcessPendingRead(CClientSocket *pSocket) char buffer200; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
6、 - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - int nReceived=pSocket-Receive(buffer,200,0); buffernReceived=0; m_ctrlMsg.AddString(buffer); UpdateClient(buffer,nReceived); void CChatServerDlg:UpdateClients(char *buffer, int nBufferSize) for(POSITION pos=m_connectionList.GetHeadPosition();
7、pos!=NULL;) CClientSocket *pSocket=(CClientSocket*)m_connectionList.GetNext(pos); if(buffer!=NULL) pSocket-Send(buffer,nBufferSize,0); 13、为为 CChatServerDlg 类的 OnInitDiaog() 函数添加如下代码:m_pSocket=new CListeningSocket(this); if(m_pSocket-Create(788) if(m_pSocket-Listen() return TRUE; else return FALSE; 1
8、4、完成 CClientSocket 类中 OnReceive()函数和 CListeningSocket 类中的 OnAccept() 函数void CListeningSocket:OnAccept(int nErrorCode) CSocket:OnAccept(nErrorCode); if(m_pDlg) m_pDlg-ProcessPendingAccept(); void CClientSocket:OnReceive(int nErrorCode) CSocket:OnReceive(nErrorCode); if(m_pDlg) m_pDlg-ProcessPendingRe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年聊天程序 2022 聊天 程序
限制150内