摘要

随着互联网的飞速发展,网络聊天以其操作简单、方便快捷、私密性好等优点已经迅速发展成为最普遍的网络交流方式之一,越来越受到人们的青睐,因为它不但为人们提供了一种新的聊天方式,而且为人们提供了一种新的生活方式。

本网络聊天系统基于Java应用程序设计,以Client/Server为开发模式,以Eclipse为开发环境,以MySQL为后台数据库,利用JDBC连接数据库。系统主要包括服务器模块和客户端模块,服务器模块能够对客户端发来的用户信息进行匹配、读取和转发;客户端模块能够进行注册、登录、管理好友、即时聊天以及聊天信息的管理。系统还利用Java提供的Socket类和多线程功能,在单个程序中同时运行多个不同进程,从而实现点对点的聊天。

该聊天系统具有开放性,实时性,多话题交错等特点,方便了人们网上交流。开发网络聊天工具有实际应用价值。

关键词: 网络聊天  socket 服务器 客户端

 


ABSTRACT

With the rapid development of Internet, network chat with its simple operation,convenient and good privacy has become the most popular way of communication networks, more and more people like it,because the Instant chat not only provide human with a new media to chat, but also provide human with a new way of life.

The Internet chat system is based on Java application, designed by Client / Server as the development of models, as Eclipse development environment, MySQL as the backend database, and using JDBC to connect database. The system includes server modules and client modules, server module can match users'  data, read and forward the information which is sent by client; client module to regist, login, manage friends,chat online and look over chat message.The system also use the Java provids Socket class and multi-threading capabilities,enable peer chat.

The chat system is open, real-time features, easy for people to communicate online.develop network chat system has practical application value.

Key words: Network Chat  Socket  Client Module  Server Module

 


目录

1 绪论 1

1.1即时通讯的背景 1

1.2国内外即时通讯的发展状况 2

1.3研究内容 3

1.3.1 产品定位 3

1.3.2 实现功能 3

1.3.3 实现技术 4

1.3.4 开发Android程序硬件配置 4

1.3.5 软件开发平台 4

2 系统开发工具及所用技术 5

2.1 Eclipse及其插件 5

2.2 MySQL 6

2.3 Java 12

2.4 Java与Internet 12

2.5 java与多线程编程 14

2.6 Socket 15

2.7 基于HTTP协议的网络编程 16

2.8 MD5加密算法 17

3 软件分析与设计 18

3.1 功能需求分析 18

3.2 系统框架设计 21

3.3 功能设计 22

3.3.1用户注册模块 22

3.3.2 用户登录模块 22

3.3.3 好友管理模块 23

3.3.4 查找用户模块 24

3.3.5 聊天模块 24

3.3.6 刷新好友列表模块 25

3.4 数据库设计 25

3.4.1 数据库需求分析 25

3.4.2 数据字典 25

3.4.3 数据库概念结构设计 26

3.4.4数据库逻辑结构设计 27

3.4.5数据流图 29

4 客户端模块的设计与实现 29

4.1 注册模块 30

4.2 登录模块 31

4.3 管理模块 33

4.4 查找模块 36

4.5 聊天模块 37

4.6 刷新模块 38

5 服务器模块的设计与实现 39

5.1 用户注册 40

5.2 用户登录 42

5.3 好友管理 44

5.4 即时通信 46

5.5 好友列表 48

6 系统测试 49

6.1 注册模块测试 49

6.2 登录模块测试 50

6.3 管理模块测试 51

6.4 查找模块测试 53

6.5 聊天模块测试 53

6.5 刷新模块测试 54

致谢 54

参考文献 55

 


1 绪论

1.1即时通讯的背景

    随着移动通信的发展以及互联网向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,WindowsMobile等手机平台,过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开放性很强的平台。经过多年的发展,第三代数字通信技术获得了广泛的使用,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此于2007年推出了一个专为移动设备设计的软件平台Android。

    Android是一套真正意义上的开放性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android是由 Linux + Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术的创新,又有助于降低开发成本,还可以使运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。

    根据中国互联网络信息中心(CNNIC)发布的《第35次中国互联网络发展状况统计报告》显示,截至2014年12月,我国网民规模达6.49亿,互联网普及率为47.9%。其中,O2O市场快速发展,成为引领行业的商务模式。我国互联网在整体环境、互联网应用普及和热点行业发展方面取得长足进步。受3G业务开展的影响,截至2014年12月,我国手机网民规模达5.57亿,较2013年底增加5672万人。网民中使用手机上网人群占比由2013年的81.0%提升至85.8% 。随着手机的不断普及以及性能的不断提升,为聊天系统从传统的PC机到手机的移植提高了很好的条件。而且在中国庞大的手机用户中,通过手机使用聊天系统软件的用户越来越多。手机端即时通信使用保持稳步增长趋势,使用率为91.2%。由此可以看出即时通讯在网络应用中占据了十分重要的地位。

即时通讯是指能够即时发送和接收互联网消息等的业务。它可以让用户在网上看到特定的通信对象是否在线;如果对方在线,双方就可以通过文字、语音,视频等方式进行交流,还能传递文件,共享计算机桌面和其它应用程序,有些系统还能支持多方参加的网络会议。即时聊天的迅速发展最主要的原因在于它本身的强大优点。和电子邮件不同,即时消息传递允许用户之间通过网络自然交互,具有方便、高效、廉价、即时等优点,具有很大的潜能,可以广泛应用于各种交流和远程监控,在商业界、自动化等各个领域都有广泛的应用前景。

1.2国内外即时通讯的发展状况

截止到目前,全球约有近3亿多人使用即时通讯软件进行交流,正因为即时通讯软件拥有数以亿计的用户和迅速增长的市场,所以各个公司都盯上了中国这个潜在的最大市场,一时间,即时通讯市场硝烟四起。面对QQ、MSN占据垄断地位的IM软件市场格局,国内聊天软件市场成为运营商们竞相挖掘的新领地,如阿里旺旺,易信,飞信,还有腾讯于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序微信。

即时通讯软件最早发布于1996年,以色列Mirabilis公司推出世界上第一个聊天系统ICQ以来,这天标志着Internet上的第一个成熟的即时通讯系统(Instant Message System)的诞生。即时通讯服务在诞生之后的几年时间得到了迅猛发展,成为新增Internet用户的3个主要应用(WEB,电子邮件和即时通讯)之一。

在国外,1995年8月,基于微软之上,美国MSN网络在线服务正式开张。在人们的印象中,MSN更多的偏重于办公阶层用户,傻瓜式操控性让我们能够在最短的时间内掌握它的使用要决。主界面相当的清爽,卡通味不浓。MSN最让人津津乐道的功能就是把汉字做成彩色的表情图片,热键设置为同样的字,就可以在聊天时候打出五彩的汉字,效果炫丽。但不支持批量导入导出,可显示出的自定义表情只有10个,用起来还是有诸多不便。支持手写;在占用资源上比同类软件优胜;稳定性超强;语音与视频质量上佳,但是有些缺点:不能向离线用户发送消息,无法自定义离线状态,在新版本中依然未得到很好的解决,增加用户时也不如QQ方便。2013年3月15日,微软公司在除中国内地之外的全球范围内关闭了即时通讯软件MSN Messenger,2014年10月31日,MSN Messenger正式退出中国市场,Skype取而代之。

在国内,1999年2月,深圳腾讯公司正式发布OICQ,开通腾讯即时通讯服务。2000年5月,腾讯QQ同时在线用户突破10万;2001年2月l0日,腾讯QQ同时在线用户突破100万。2004年4月份腾讯QQ同时在线人数最高记录已经突破了600万大关,现在腾讯公司正在把即时通讯系统往移动通讯方向扩展,如今已经将即时通讯与手机短信息(SMS)成功结合起来。即时通讯软件涉及和影响的领域已近越来越广,其竞争也越来越激烈。2011年1月21日腾讯推出的一个为智能终端提供即时通讯服务的免费应用程序微信。微信提供公众平台、朋友圈、消息推送等功能,用户可以通过“摇一摇”、“搜索号码”、“附近的人”、扫二维码方式添加好友和关注公众平台,同时微信将内容分享给好友以及将用户看到的精彩内容分享到微信朋友圈。截至2013年11月注册用户量已经突破6亿,是亚洲地区最大用户群体的移动即时通讯软件。

目前即时通信技术获得了迅速的发展,功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能,发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台,而不再是一个单纯的聊天工具。

1.3本课题研究内容

   通过以上对即时通讯软件发展状况的分析,再加上国内互联网速度的飙升,开发一款简单实用大众化地即时通讯产品在后PC时代的信息产业领域具有旺盛的生命力。本课题涉及数据库、构架、设计模式、多线程编程、Android移动应用开发等有关软件技术。

1.3.1 产品定位:

一款简单实用的聊天软件:VV聊天。系统的客户端定位于Android手机平台。Android的上层应用程序的开发是在Eclipse开发环境中进行的,运用Java语言开发,同时还需要基于Android虚拟机,并且安装JDK、SDK、ADT等插件。聊天软件是基于互联网协议的应用程序,它能够使应用不同设备的用户进行通信。

1.3.2 实现功能:

主要实现好友在线聊天、用户的注册与登陆管理、聊天信息管理等。根据应用活动都运行于主线程的特点,采用多线程技术来解决系统通讯问题。系统的用户信息和聊天信息存储在MySQL数据库中。

1.3.3 实现技术:

Java 的Scoket网络编程:Java服务端对android端提交的数据进行处理然后发给客户端进行显示。

    基于HTTP协议的网络编程:Android手机端将组装好的数据包通过无线网络发送到服务器,服务器读取并解析数据包,组装一个相应的回应数据库并返回给Android端,以此达到通信的目的。

    多线程编程:每一个用户占用一个独立的线程与服务器进行交互,用户首先将信息发送到服务器,服务器解析信息,并将信息转发给相应的用户。使用线程可以把占据长时间的程序中的任务放到后台去处理,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度,程序的运行速度加快。

Android移动应用开发:学习Android开发技术,掌握Android应用架构和开发流程。

MD5加密算法:在数据库中保存的密码采用MD5加密算法,保证用户的隐私。

1.3.4 开发Android程序硬件配置

    服务器:处理器速度2.0 GHz以上;内存2 GB以上;硬盘 300G以上。

    客户端:硬件需求:android2.3以上平台,搭载至少单核1.3GHZcpu。

1.3.5 软件开发平台:

Eclipse;ADT;JDK;SDK;MySQL。

2 系统开发工具及所用技术

2.1 Eclipse及其插件

2.1.1 Eclipse

    Eclipse是一个开放源代码、基于Java的可扩展的开发平台。虽然Eclipse的本身只是一个框架平台,但是由于很多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse是一个开放源码项目,由于开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此受到越来越受人们的关注。

Eclipse安装

打开官网eclipse.org,更具自己的系统,选择相应的版本下载。下载完毕,你会在你保存的地方看到一个压缩包文件,然后解压,解压完毕后即可使用,进入文件夹,点击eclipse即可启动程序。启动之后,选择默认工作区,就可以打开,如图2-1所示。

聊天室怎么设计mysql表 聊天室设计与实现_android

正在上传…重新上传取消

图2-1 Eclipse安装图

2.1.2 ADT

   ADT一个Eclipse插件,作用是关联Android SDK,使eclipse能够新建Android工程。

   ADT安装

所示。

聊天室怎么设计mysql表 聊天室设计与实现_android

正在上传…重新上传取消

图2-2 ADT安装图

2.1.3 JDK

   jdk是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。

   JDK的安装

首先上甲骨文公司的官方网站下载JDK的安装包,根据自己电脑的操作系统选择正确的版本下载。运行jdk1.8.0_45 exe,安装过程中可以设置安装路径、选择组件,系统默认安装路径F:\Program Files\Java\jdk1.8.0_45,默认组件选择是全部安装。安装成功后,JDK的目录结构如图2-3所示。

聊天室怎么设计mysql表 聊天室设计与实现_android

正在上传…重新上传取消

图2-3 JDK目录结构图

JDK的配置

由于Java是平台无关的,安装JDK是Java不会自动设置路径,也不会修改注册表,需要用户自己设置环境变量。Windows中需要设置两个环境变量path和classpath。path变量指出Java提供的可执行文件的路径,classpath变量指出Java包的路径。下面开始设置环境变量:右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,在弹出的“系统属性”对话框中选择“高级”选项卡,单击【环境变量】按钮,系统弹出“环境变量”对话框,如图2-4所示。

聊天室怎么设计mysql表 聊天室设计与实现_android

正在上传…重新上传取消

图2-4 环境变量配置

path是Windows已定义的变量,找到“Path”,单击【编辑】按钮,将“;F:\Program Files\Java\jdk1.8.0_45\bin”加到“变量值”文本框后边,然后单击【确定】按钮。

通常Windows中没有classpath环境变量,需要新建。单击【新建】按钮,变量名为“classpath”,变量值为“.;F:\Program Files\Java\jdk1.8.0_45\lib”,这是JDK包的路径。至此,JDK安装完成。