基于JAVA的聊天软件设计与实现

2017-07-10 07:25郝胜华张素华
电脑知识与技术 2017年14期

郝胜华+张素华

摘要:该文详细描述了基于JAVA语言的即时通信系统的设计过程。本设计由客户端和服务器端两大部分构成,采用传统的C/S设计模式,主要通过JAVA中的Socket协议进行通信。本设计简单,易懂,通过简单的服务器端程序和客户端程序来实现即时通信,具有一定的使用价值。

关键词:JAVA;C/S;Socket;即时通信

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)14-0097-03

在我国,随着经济文化的发展,信息时代的飞速发展,中国已经成为世界第一大互联网用户国家。生活中已经离不开网络了,而与我们最密切相关的网络工具就是即时通信软件,如人手一个账号的QQ,微信,以及中国移动的飞信等,大量的社交工具帮助着我们与朋友,与社会各地的人的交流。随着网络速度的提升,尤其是3G时代到来之后,我们对即时通信的要求又提升了一个高度,我们不在依靠于文字去传递我们的语言,而是渐渐通过语音,甚至是视频直接与我们想要沟通的人直接进行通信。

1需求分析

1.1客户端的主要任务

客户端需要实现注册,即时聊天,相互之间收发文件,好友上、下线提醒等功能。

1)注册

服务器收到用户的注册请求,便开始接受客户传递的信息,如客户的昵称,密码等,接受完毕后,通过程序中properties类进行添加记录,如添加成功,客户收到服务器返回的信息后,便直接返回登录窗口。

2)登录

在客户端,用户输入其号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服务器收到后,开始通过properties类进行读取数据,然后与用户输入的信息进行比对,如果成功,便打开主程序窗口。然后客户向服务器请求读取好友名单,服务器收到该请求,从数据库中取出好友列表,然后向客户端发送这些信息,客户收到后就在主窗口显示好友。

3)聊天室

客户端首先发送消息到服务器端,服务器端根据发送人信息和接收者信息来转发。例如服务器接收到一个A发给B的消息,先判断B是否已经在线,如果在线就将信息发送过去。如果B不在线则把信息储存在服务器。

1.2服务器端的主要任务

服务器端应当建立一个ServerSocket,并且不断进行侦听是否有客户端连接或者断开连接(包括判断没有响应的连接超时)。服务器端应当是一个信息发送中心,所有客户端的信息都传到服务器端,由服务器端根据要求分发信息。

1)建立一个ServerSocket,并不断的监听客户端传递过来的Socket信息。

2)服务端还应该是个信息转发中心,接收到客户端传递过来的信息在进行转发送。

2系统设计

本设计是为了实现简单的网络聊天功能,大致分为功能设计,工作原理图,系统各功能模块三部分,

2.1功能设计

2.1.1登陆界面功能表

登陆界面用到的控件及控件说明如表1所示。

2.1.2注册界面功能表

注册界面用到的控件及控件说明如表2所示。

2.1.3聊天界面功能表

聊天室界面用到的控件及控件说明如表3所示。

2.2 JAVA聊天系统各功能模块

本系统主要可分为两大模块,客户端模块和服务器端模块。

2.2.1客户端模块

JAVA中使用套接字十分简单,JAVA API为处理套接口的通信给我们提供了一个类库包java.net.Socket使得编写网络应用相较容易。客户端通过创建Socket对象,绑定服务端并设置端口号即可向服务器端发送和接受消息。

2.2.2服务器端模块

服务器端通过创建一个ServerSocket并不断的监听客户端的请求,采用多线程的方式滿足不同客户端发送过来的消息并不断的处理消息。

3系统主要功能实现

除了实现首页、登陆和购买界面,还实现了后台管理及手机新增界面,主要功能实现如图1,图2和图3所示。

4关键技术及实现方案

4.1服务器关键代码

服务器端通过创建一个ServerSocket并不断的监听客户端的请求,采用多线程的方式满足不同客户端发送过来的消息并不断的处理消息。

4.2服务器关键代码

服务器端通过创建一个ServerSocket并不断的监听客户端的请求,采用多线程的方式满足不同客户端发送过来的消息并不断的处理消息。

5结束语

本设计利用了Swing技术搭建了系统的登陆界面、注册界面、聊天室界面,通过程序中的properties类进行用户数据添加和验证,通过客户端和服务器端建立Socket连接进行数据通信,现在基本完成聊天软件的功能。