当前位置:文档之家› 简单聊天系统的设计与实现

简单聊天系统的设计与实现

JISHOU UNIVERSITY专业课课程论文简单聊天系统的设计与实现题目:作者:学号:所属学院:信息科学与工程学院专业班级:总评分:完成时间:吉首大学信息科学与工程学院简单聊天系统的设计与实现(吉首大学信息科学与工程学院,湖南吉首 416000)摘要网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在同一聊天室的人们通过广播消息进行实时交谈。

在当今信息时代,越来越多的聊天工具被应用,java语言是当今流行的网络编程语言,它具有面向对象,与平台无关,安全,多线程等特点。

使用java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的的,嵌入式设备进行应用程序的开发。

面向对象的开发是当今世界最流行的开发方法,它不仅具有更贴近自然地语义,而且有利于软件的维护和继承,锻炼我们熟练地应用面向对象的思想和设计方法解决实际问题的能力。

本程序正是用java 语言实现了简单聊天功能。

它是图形界面,线程,流与文件系统等技术的综合应用。

其界面主要采用了包,包等。

关键词:网络聊天室;java;面向对象;通信机制;图形界面目录Eclipse (3)SQL Sever数据库 (3)经济可行性 (4)操作可行性 (4)技术可行性 (4)注册 (4)登录 (5)私聊 (5)消息格式化设计 (10)界面设计 (10)登录界面 (10)注册界面 (11)聊天界面 (11)3第一章引言当今主流的聊天工具有QQ,MSN,网易泡泡等,国内最热门的聊天工具当属腾讯QQ,是由深圳市腾讯计算机系统公司开发的,基于Internet的即时寻呼软件。

你可以通过QQ和你的亲朋好友进行交流,即时收发消息,文件传输,语音视频,发送邮件等功能,QQ不仅仅在电脑在应用,还能通过移动电话登录手机腾讯网址或者下载手机可用的手机客户端进行QQ的登录使用。

QQ支持显示好友的在线信息,即时传送信息、即时交谈、即时发送文件和网址。

QQ可以在Win95/98/NT/2000/XP/Win7操作系统下运行,是十分灵活的网络通信工具。

虽然QQ软件是免费的,而且功能也是越来越强大。

但是唯一的不足的地方就是都需要在电脑联网的情况下才能使用,脱离了Internet根本就是一个只能看不能用的软件,为了能在脱离了Internet的情况下使用的局域网聊天工具,那就必须要有服务器端,而本系统就是包括服务器端和客户端,可以在局域网聊天的一个软件。

第二章关键技术开发技术什么是JavaJ ava是一种可以跨平台应用的面向对象的程序设计语言,他是由Sun公司在1995年推出的程序设计语音。

Java具有很高的通用性,安全性,跨平台等特点。

Java与一般的编译执行计算机语音和解释执行计算机语音不同。

他它首先是将源代码编译成二进制的字节码,然后在各种不同平台的虚拟机上来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台的特性,这也是Java语言最大的特点。

Sun公司在推出Java后就将它作为一种开放式的技术,从而吸引了很多编程开发者。

而Sun公司的口号之一就是“Java语言是靠群体的力量而非公司的力量”,并且获得了广大软件开发商的认可。

J ava语言的主要特性有:1)Java语言是简单的。

Java语言的语法和C语言,C++语言很相近,从而使得大多数的程序员很容易学习。

2)Java语言是一个面向对象的。

比C++更纯粹的面向对象程序设计语言。

3)Java语言是分布式的。

Java的网络能力强大且易于使用。

4)Java语言是健壮的。

Java的强类型机制,异常处理,废料的自动收集等是Java程序健壮性的重要保证。

5)Java语言是安全的。

Java通常应用在网络环境中,因此Java提供了一个安全机制来防止恶意代码的攻击。

6)Java语言是体系结构中立的。

Java程序在Java平台上被编译为体系结构中立的字节码格式, 然后可以在实现这个Java平台的任何系统中运行。

7)Java语言是可移植的。

这种可移植行又来源于体系结构的中立性。

8)Java语言是解释型的。

Java程序在Java平台上被编辑为字节码格式,然后才可以在这个Java平台的任何系统中运行。

9)Java是高性能的。

与那些解释型的高级脚本语言相比,Java的确是高性能的。

10)Java语言是多线程的。

在Java语言中,线程是特殊的对象,它必须由Thread类或其子类来创建。

通常有两种方法创建:第一,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。

第二,实现Runnable 接口。

Java中的布局边框布局BorderLayout、流布局FlowLayout、网格布局GridLayout、分组布局GroupLayout、Box类布局。

2.2开发工具2.2.1EclipseEclipse是一个开放源代码的、基于Java的可扩展开发平台。

就其本身而言,它只是一个框架和一组服务,用于通过组件构建开发环境。

幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。

Eclipse还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。

由于Eclipse 中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。

这种平等和一致性并不仅限于Java开发工具。

尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++和COBOL等编程语言的插件已经可用,或预计将会推出。

Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。

基于Eclipse的应用程序的一个突出例子是IBM RationalSoftwareArchitect,它构成了IBM Java开发工具系列的基础。

2.2.2SQL Server数据库SQL是英文Structured Query Language的缩写,意思为结构化查询语言。

SQL语言的主要功能就是同各种数据库建立联系,进行沟通。

SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。

Microsoft SQL Server近年来不断更新版本,1996年,Microsoft推出了SQL Server版本;1998年,SQL Server版本和用户见面;SQL Server2000是Microsoft公司于2000年推出,目前最新版本是2012年3月份推出的SQL SERVER2012。

特点:1).真正的客户机/服务器体系结构。

2).图形化用户界面,使系统管理和数据库管理更加直观、简单。

3).丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。

4).SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。

SQL Server也可以很好地与Microsoft BackOffice产品集成。

5).具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。

6).对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。

7).SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。

第三章需求分析可行性分析经济可行性本系统需要一个SQL Server数据库服务器,由于使用人数比较少,安装一个免费的SQL Server数据库完全可以应付需要,所以成本就不用考虑了。

操作可行性只要一台以上计算机连接在同一个局域网内,本系统就可以安装使用,所以操作上完全不存在问题。

技术可行性本系统采用Java语言,是基于CS架构的。

开发这个系统需要开发者对socket 编程和Java Swing这两方面的技术比较熟。

由于本人长期从事于java语言编程,所以技术方面是可行的。

功能分析注册服务器收到用户的注册请求,便开始接受客户传递的信息,诸如客户的呢称,性别,籍贯,个人资料等,接受完毕后,便通过JDBC与后台数据库连接,然后向数据库添加记录,如果成功,便向客户返回其号码。

客户收到服务器返回的信息后,便打开主登陆窗口。

登录在客户端,用户输入其号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服务器收到后,开始通过JDBC读取数据库,然后与用户输入的信息比较,如果成功,便打开主程序窗口。

然后客户向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的表,得到好友的号码后,再在icq表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,并且建立几个矢量用以存储好友的呢称,号码。

私聊私聊就是两个聊天。

客户端首先发送消息到服务器端,服务器端根据发送人信息和接收者信息来转发。

例如服务器接收到一个A发给B的消息先判断B是否已经在线,如果在线就将信息发送过去。

B接收到A发来的信息,如果是未建立对话窗口,就询问是否建立对话,否则就丢弃信息。

第四章概要设计系统总体结构数据库设计1.用户表(UserInfo):属性:用户编号(uid),用户名(uname),密码(upass),登录ip和端口号(ipport),状态(status)。

关系:一个用户可以有多个好友。

2.好友表(Friends):3.消息表(Messages):属性:消息编号(mid),接受消息的用户编号(ruid),发送消息的用户编号(suid),发送消息的时间(sendTime),消息第五章详细设计登录模块设计该模块的界面是仿照腾讯QQ的界面,界面与腾讯QQ相比虽然不是那么美观,但是基本的功能也与其差不多了,在这个界面上用户的主要操作有用户输入用户名,密码,如果还没有注册用户名的网友可以通过登录界面的用户注册,从而使用该程序。

在登录该程序之前需要开启服务器,当用户把用户名和密码输入好后点击登录按钮后,就开始与服务器建立连接,服务器收到后开始通过JDBC的方式读取数据库的内容,然后与用户输入的用户名和密码进行比较,如果用户名不存在或者用户的密码错误则登录失败,并且提示失败的原因,如果有时候没有把服务器开启的话,则在登录失败后,会提示连接服务器超时。

相关主题