程序设计实践 设 计 报 告 课题名称: 网络聊天程序的设计和实现 学生姓名: 班 级: 班内序号: 1 7 学 号: 日 期: 2014.5.25 1) 课题概述 1.1 课题目标和主要内容 主要内容和目标:(1)按实验步骤使用VC++设计出程序,在此的基础上用VC++或其他工具设计出一个能实现两个人及以上人次聊天的网络程序。 (2)熟悉VisualC++的基本操作;掌握最基本的Client/Server(客户机/服务器)模式的网络编程技术,并在此基础上实现更为复杂的网络编程;基本了解基于对话框的w indow s 应用程序的编写过程;对于Window s Socket 编程建立初步概念。 使用的开发平台:VC2013 采用的主要工具:MFC 应用程序 1.2 系统的主要功能 功能表: 1.建立服务器:程序运行后,可以输入IP 地址和端口号后建立服务器,用于监听信息。 2.实现客户端功能:程序运行后,可以输入IP 地址和端口号,连入服务器,进入聊天室聊天。 3.聊天功能:进入聊天室的客户可以给自己取昵称,然后进行多人聊天。界面可以输入聊天内容、昵称,可以显示聊天信息。 2 ) 系统设计 2.1 系统总体框架 系统框架图: 系统在输入IP 和端口之后,可以建立服务器。再打开一个程序作为客户端,输入IP 和端口,连接进入服务器聊天室可以进行多人聊天。 2.2 系统详细设计 2.2.1 模块划分图及描述 a) 服务器监听模块: 添加一个基于CSocket 的CserverSocket 类,用于监听套接字。其中CSocket 是CAsyncSocket 类的派生类,它们都是从CObject 类继承下来的。CSocket 类是更高层次的网络接口抽象。在服务器端,需要先用指定端口创建套接字,然后调用Listen()函数对制定连接端口进行监听,再创建一个空的CSocket 对象。收到请求后,调用Accept()函数对客户端的连接请求进行接收。 具体过程中,需要先添加成员变量和初始化函数声明。然后需要重载OnAccept 函数。 b) 通信类模块 该部分主要用于创建客户端程序以及数据的传输,其实现方式原理如下: i. 客户端程序:首先调用系统的Create()函数,用缺省的端口创建套接字;然后需要使用函数Connect()连接指定地址的服务器。 ii. 数据传输:该部分主要实现信息的传输、接受和处理。首先创建与 CSocket 类的对象相连接的CSocketFile 类对象,再创建与 CSocketFile 类的对象相连接的CArchive 类对象,用于储存将要发送的数据,再创建与 CSocketFile 类的对象相连接的CArchive 类对象...