当前位置:
文档之家› 8计算机网络课程设 多人即时聊天系统
8计算机网络课程设 多人即时聊天系统
编号:
计算机网络课程设计说明书
题 目: 多人即时聊天系统
学 院:
计算机学院ຫໍສະໝຸດ 专 业:网络工程学生姓名:
学 号:
指导教师:
2013 年 6 月 23 日
摘要
在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络, 由此而产生的聊天工具越来越多,例如,国外的 ICQ、国内腾讯公司开发的 OICQ。 基于 Java 网络编程的强大功能,本次课程设计使用 Java 编写一个运行在 JCreator 编译器环境的即时通讯软件。
即时通讯系统完成后将可进行多人对多人的聊天,更改姓名、显示在线人数、 发送消息、接受消息等等功能。
关键字:多线程 ;客户机/服务器 ;JAVA ; Socket ; JCreator ; TCP/IP
目录
1 绪论.........................................................................................错误!未定义书签。
消费类电子产品进行了一个名为 Green 的项目计划。这个计划的负责任是 James
计算机网络课程设计报告
3
Gosling。起初他用具有面向对象特征的 C++语言编写嵌入式软件,可以放在面包机
或 PDA(Personal Digital Assistant,个人数字主力)等小型电子消费这杯里,以使
1.2.1 Java 的发展历史.....................................................................................2 1.2.2 Java 的特点.............................................................................................3 1.2.3 Java 与 Internet....................................................................................... 4 1.3 SOCKET 编程..................................................................................................4 1.3.1 关于 TCP/IP 协议..................................................................................4 1.3.2 服务器和客户机........................................................错误!未定义书签。 2 数据流图.............................................................................................................7
1.1 国内外聊天系统的研究现状....................................................................... 3 1.2 JAVA 语言....................................................................................................... 2
参考文献...............................................................................................................23
计算机网络课程设计报告
1
1 绪论
1.1 国内外即时通讯系统的研究现状
本系统建立在 Java 平台上,系统的设计使用了面向对象技术和面向对象的设 计原则。系统采用 C/S 结构,客户端与客户端以及客户端与服务器端之间通过 Socket 传送消息。使用 Java 语言编写,开发工具采用 JCreator。服务器端设计与实现过 程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不 同的任务。大大增强了程序对服务器资源的利用。
2
与腾讯 QQ 不同,微软的 MSN Messenger 只使用了 TCP 作为传输层通信协议,
所有客户端与服务器进行连接,然后通过与服务器的 TCP 连接进行中转通信。
其模型如图 1-2
图 1-2 MSN 服务器-客户端模型 2
腾讯使用的模型中,服务器主要处理客户端各种状态的控制,可以极大减轻服 务器的处理压力,但其内部协议和实现复杂度都较高。而 MSN Messenger 所有数据 都要经过服务器,所以服务器方的数据量会大一些(这也是平时很少见到使用 MSN 进行语音视频聊天的)。
一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放 客户数据的数据库组成,本系统采用客户端/服务器架构模式通过 Java 提供的 Socket 类来连接客户机和服务器并使客户端和服务器之间相互通信,由于聊天是多 点对多点的,Java 提供的多线程功能用多线程可完成多点对多点的聊天。
综合腾讯 QQ 和微软 MSN Messenger 的特点和我所学专业技术范畴,我打算在 我的系统中尝试建立 MSN 的服务器-客户端模型,但以单服务器提供服务。
1.2 Java 语言
1.2.1 Java 的发展历史 Java 的发展历史,可以追朔到 1990 年。当时 Sun Microsystem 公司为了发展
了大部分与 C++类似的语法对可能具备危险性的功能加以改进,例如将内存管理改
为由语言自己进行管理,以减少程序员的负担及可能发生的错误。Oak 是一种可移
4.1 服务器端.................................................................................................... 12 4.2 客户端........................................................................................................ 15
目前国内外做即时通讯软件的公司很多,产品也琳琅满目,国内有诸如腾讯 QQ、新浪 UC、网易泡泡、淘宝旺旺等,国外有著名的 MSN(新版改名为 Live Messenger)以及跨平台的米聊等。本人取最具代表性的 QQ 和 MSN 进行了一些研 究,作为我开发即时通讯的准备。
腾讯无疑是国内即时通讯市场的霸主,自从 99 年进入即时通讯领域并迅速占 市场之后,其在国内用户数量始终高居榜首,即使近几年面对微软 MSN 的强大攻 势,腾讯 QQ 的时常占有率依然稳步增长。腾讯的成功与其对 QQ 的不断创新和完 善是分不开的。
参考了许多网络上的资料,以及自己通过观察腾讯 QQ 运行时的各种细节。可 以确定腾讯 QQ 是以多服务器提供服务、服务器总控客户端、客户端之间 UDP 直 连通信的。并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通 信。
其模型如图 1-1
图 1-1 腾讯 QQ 服务器-客户端模型 1
计算机网络课程设计报告
3 概要设计.............................................................................................................9
3.1 系统实现原理............................................................................................... 9 3.2 各模块详细功能......................................................................................... 10
5 系统设计与实现...............................................................................................18
5.1 开发环境工具............................................................................................. 18 5.2 硬件环境..................................................................................................... 18 5.3 系统运行测试............................................................................................. 18 6 总结...................................................................................................................22
2.1 顶层数据流图.................................................................. 错误!未定义书签。 2.2 一层数据流图.............................................................................................. 7 2.3 二层数据流图...............................................................................................8