聊天室程序系统方案.

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

长沙广播电视大学毕业设计

聊天室软件实现

指导老师:

学生:

学号:

摘要

本课程设计实现类似于Windows操作系统自带的聊天程序。在课程设计中,系统开发平台为Windows XP,程序设计语言采用Visual C++,程序运行平台为Windows 98/2000/XP。在程序设计中,主要分别实现服务器端和客户端两部分程序。系统采用C/S结构,可以多人同时在线。程序通过调试运行,实现了设计目标,能够同时满足扫雷游戏初学者和高手的需要。

关键词:聊天程序系统; 数据库;Visual C++6.0; SQL Server 2000

Abstract

The course is designed to achieve similar to Windows operating system bringing chat program. In the curriculum design, system developing platform for Windows XP, programming language using Visual c + +, program operation platform for Windows 98/2000 / XP. In programming, mainly realized respectively the server and client two part program. System using C/S structure, can people online at the same time. Program through the post-sale, realized the design goal, satisfies minesweeper beginners and

superior needs.

Keywords: chat program system; Database; Visual c + + 6.0, SQL Server 2000

1 绪论

正如大多数聊天室一样,需要在一台计算机上运行服务器端程序,然后就可以在同一网络的其他计算机上运行客户端程序,登录到服务器上。一个聊天服务器和很多客户端进行通信,从而实现把来自不同的客户的聊天信息转交到所有其他的客户端。这样就形成一个采用C/S结构的可以多人同时在线的聊天室。同时本聊天室在设计时完成在线用户显示、私聊功能。私聊功能即是聊天信息只在私聊两方的计算机客户端上显示,其他客户端不显示。

2 系统分析

《聊天程序系统》提供了多个客户端的连接,可以允许多个用户同时在线。本设计主要对聊天室服务器和聊天室客户端两个方面进行实现,其功能:新用户登陆、更新在线用户列表、用户离开、私聊等。

3.1功能简介

根据用户的需求,要求系统需具有以下功能:

(1) 聊天室服务器端实现功能:

①支持多个客户端的连接,一个聊天服务器和很多客户端进行通信。

②(2)接收客户端发送的信息,能分析信息的含义。

A.如果是新用户登录,则在服务器在线用户列表框中加入新用户昵称,并显示新用户进入信息提示,同时将更新在线用户列表发给所有客户端;

B.如果是用户离开,则在服务器在线用户列表框中删除此用户昵称,并显示用户离开信息提示,同时将更新在线用户列表发给所有客户端;

C.如果是私聊,聊天信息则显示在服务器聊天信息列表框中,同时将聊天信息仅仅发给私聊对象客户端;

D.如果是公开聊天信息则显示在服务器聊天信息列表框中,同时将聊天信息发给所有客户端。

(3)服务器停止服务时,停止端口侦听,将停止服务信息发给所有客户

端。

二、聊天室客户端实现功能:

(1)支持连接指定IP的聊天服务器。

(2)私聊形式或公开形式发送聊天信息给聊天服务器。

(3)接收服务器端发送的信息,能分析信息的含义。

A.如果是用户离开,则在在线用户列表框中删除此用户昵称;

B.如果是更新在线用户列表,则客户端重新显示在线用户。3.2系统特点

A.界面设计美观友好

B.规、完善的基础信息设置

C.信息查询灵活、方便、快捷

D.系统运行稳定,安全可靠

3.3

4 总体设计

4.1 细化聊天室程序通信规程

我们通过Socket发送一定格式的字符串来完成不同的操作。具体格式为:命令|参数|参数……

(1)新用户登录

NEW_USER | 昵称

(2)更新在线用户列表

USERLIST | 昵称| 昵称| 昵称……

(3)用户离开

CLOSEUSE | 昵称

(4)私聊

PrivChat| 私聊对象|私聊容(含两方的昵称)

注意:公开的聊天信息,则没有设置相应命令。在判断不是上述情况后,则就是公开的聊天信息。

4.2 客户端工作流程

(1)用户输入服务器端的IP和昵称后,单击连接聊天服务器按钮,客户端程序将建立一个连接套接字Socket与服务器端连接,如果成功,将昵称通过这个Socket发送到服务器端。

(2)用户输入聊天信息后,单击发送信息按钮,通过这个Socket来发送给服务器。

(3)用户如果单击“私聊”复选框,单击发送信息按钮后,先判断是否选择私聊对象,在发出“PrivChat| 私聊对象|私聊容”。

(4)当客户端单击“离开聊天室”按钮断开连接前向服务器发出“CLOSEUSE | 昵称”信息。

4.3 服务器段工作流程

(1)单击启动按钮,服务器端通过create()调用创建一个侦听套接字Socket后与指定的本地端口6767绑定,就可以在该端口进行侦听listen()。

(2)如果有客户端连接请求,将触发侦听套接字的OnAccept事件,在事件处理函数中,创建新的连接套接字,用于与客户端的通信。并将该连接套接字Socket加入链表类CClientSocketList 指针List(&CCSL)所指的链表中。

(3)每当一个连接套接字Socket 接收到信息,都将会触发服务器端对应的连接套接字的OnReceive事件。在OnReceive事件处理函数中,读取客户端发送的聊天信息,根据细化聊天室程序通信规程进行分析。如果是新用户登录或用户离开或公开聊天信息,则再把接收到的信息发送给每一个连接套接字Socket。如果是新用户登录或用户离开或私聊信息,则发给找到的私聊对象。

相关文档
最新文档