- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北邮程序设计实践报告{聊天程序}附源代码
北京邮电大学信息与通信工程学院
第 PAGE 29页
北京邮电大学电信工程学院
第 PAGE 1页
程序设计实践
设
计
报
告
课题名称:聊天程序
学生姓名:
班 级:
班内序号:
学 号:
日 期:2014/6/6
课题概述
1.1课题目标和主要内容
聊天程序虽然形态各异,但就其本质,却是相同的。这种程序一般由两大部分组成:服务器端聊天程序和客户端聊天程序。服务器端聊天程序负责接收来自客户端的聊天信息,并且根据客户端的要求把这些信息转发到另外一个活多个客户中。客户端聊天程序则负责建立与维护与服务器端的连接,向服务器发送本客户的聊天内容,同时从服务器接收对方的响应。
1.2系统的主要功能
(1)可以手动输入服务器IP地址和端口号进行连接(客户端功能)。
(2)可以手动建立服务器接受其他客户端的连接要求(服务端功能)。
(3)可以发送消息给服务端,显示服务端传来消息(客户端功能)。
(4)可以接收客户端发送的消息,并将消息传给所有在线的客户端(服务端功能)。
2. 系统设计
2.1 系统总体框架
客户端
通信底层
TCP/IP
CClientSocet
服务器
网卡
CServerSocet
TCP/IP
通信底层
网卡
2.2 系统详细设计
服务端:
[1] 模块划分图及描述
(1)在特定的端口上等待来自聊天客户的连接请求,并且需要维护一个客户连接表,以记录所有成功的连接。
(2)及时接收各个聊天客户发送过来的信息,然后把这些信息转发到一个或多个客户连接。
(3)监控这些连接的状态,在客户主动离开或发生故障时从列表中删除相应的表项,并及时更新连接表。
[2] 类关系图及描述
CServerSocket类的主要功能是实现OnAccept()消息,负责监听服务端口,是一个服务Socket。此类头文件代码如下:
// CServerSocket command target
class CChatDlg;
class CServerSocket : public CSocket
{
// Attributes
public:
CChatDlg * m_dlg;
UINT m_uPort;
BOOL Init(UINT port, CChatDlg* dlg);
// Operations
public:
CServerSocket(){};
virtual ~CServerSocket(){};
// Overrides
public:
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CServerSocket)
//使用类向导添加的
public:
virtual void OnAccept(int nErrorCode);
//}}AFX_VIRTUAL
// Generated message map functions
//{{AFX_MSG(CServerSocket)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
// Implementation
protected:
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_SERVERSOCKET_H__03952A19_3B2C_45BD_B9BB_FBBD072ED603__INCLUDED_)
[3] 存储结构、内存分配
此模块用到了列表的存储结构
客户端:
[1] 模块划分图及描述
(1)建立和维护与服务器的连接,并且随时监测连接的状态。
(2)把用户输入的信息及时发送到服务端,同时,随时准备好接收服务端的信息,并将它显示出来。
(3)在用户退出聊天过程时要关闭与服务端的连接。
[2] 类关系图及描述
CClientSocket类通过相应的OnReceive消息来接受数据,响应OnClose消息来断开对话的处理。CClientSocket类实现了以CArc
您可能关注的文档
- 北京市丰台区2016学年中考语文模拟试卷{一模}.doc
- 北京市中考化学实验题汇编2007一2014.doc
- 北京市丰台区2014届高三上学期期末练习历史试题{WORD精校版}.doc
- 北京市加强与改进义务教育阶段信息技术学科教学的指导意见2013一7一3.doc
- 北京大学古代史课件一东汉时期.ppt
- 北京市丰台区2017届九年级5月统一练习{一模}语文试题.doc
- 北京市存量房屋买卖合同{自行成交版}.doc
- 北京市2013年东城区一模理综试卷及答案全{分开}.doc
- 北京市丰台区2016届高三第二学期统一练习{一}文综试题{WORD版}.doc
- 北京市师大附中10一11上学期高二历史期中考试.doc
原创力文档


文档评论(0)