北京邮电大学信息与通信工程学院

程序设计实践

课题名称:聊天程序

学生姓名:

班 级:

班内序号:

学 号:

日 期:2014/6/6

1

第 页

北京邮电大学信息与通信工程学院

1. 课题概述

1.1课题目标和主要内容

聊天程序虽然形态各异,但就其本质,却是相同的。这种程序一般由两大部分组成:服

务器端聊天程序和客户端聊天程序。服务器端聊天程序负责接收来自客户端的聊天信息,并

且根据客户端的要求把这些信息转发到另外一个活多个客户中。客户端聊天程序则负责建立

与维护与服务器端的连接,向服务器发送本客户的聊天内容,同时从服务器接收对方的响应。

1.2 系统的主要功能

(1)可以手动输入服务器IP地址和端口号进行连接 (客户端功能)。

(2)可以手动建立服务器接受其他客户端的连接要求 (服务端功能)。

(3)可以发送消息给服务端,显示服务端传来消息 (客户端功能)。

(4)可以接收客户端发送的消息,并将消息传给所有在线的客户端 (服务端功能)。

2. 系统设计

2.1 系统总体框架

客户端 服务器

CClientSocet CServerSocet

TCP/IP TCP/IP

通信底层 通信底层

网卡 网卡

2.2 系统详细设计

服务端:

[1] 模块划分图及描述

(1)在特定的端口上等待来自聊天客户的连接请求,并且需要维护一个客户连

接表,以记录所有成功的连接。

2

第 页

北京邮电大学信息与通信工程学院

(2)及时接收各个聊天客户发送过来的信息,然后把这些信息转发到一个或多

个客户连接。

(3)监控这些连接的状态,在客户主动离开或发生故障时从列表中删除相应的

表项,并及时更新连接表。

[2] 类关系图及描述

CServerSocket类的主要功能是实现OnAccept()消息,负责监听服务端口,

是一个服务Socket。此类头文件代码如下:

// CServerSocket command target
class CChatDlg;
class CServerSocket : public CSocket
{
// Attributes
pu