基于socket的即时通信系统的设计与实现

前言

这是学校实训时候我做的一个小项目,主要使用的就是Java的Socket技术。当时对面向对象、计算机网络等知识了解的还不深入,遇到不懂的也是看视频、查资料去解决。虽然最后完成了项目,但是感觉不是很满意,并且一直以来想对项目进行优化,然而事实上我现在就已经看不太懂当时写的东西了。所以暂时先就这样吧。这个项目最大的问题就是文件的存储,当时想的很简单,所以有很多问题,有时间再改吧(什么时候有时间呢?(滑稽))

1 系统需求分析

1.1 产品非功能需求

1.1.1 用户需求

系统的设计建立在用户的需求之上,通过对用户需求的分析,可以更好的实现系统,明确系统的设计方向。

随着互联网的不断发展,人与人之间的交流也逐渐开始越来越依赖网络,在这种形势下,我们开发出了这款即时通信系统。本着用户至上的原则,我们对用户需求进行了分析调研。结果显示,用户除了对基本的通信功能的要求外,还希望能够拥有个性化的展示,同时希望能和好友进行更多的交互。基于用户的需求,我们将软件的功能大致划分为:通信,文件传送,界面展示,天气预报等。

1.1.2 易用性需求

本产品采用javafx技术,为用户设计了简单易用的界面,同时使用css对界面进行了美化,为用户提供了良好的使用界面。在使用过程中如果用户误操作也会对用户进行相应的提示。

1.1.3 性能需求

本产品在保持界面的美观的同时为优化性能设计了具体的算法,尽量为用户提供及时的响应。

1.1.4 可维护性和可扩展性需求

本产品使用Java作为主要的开发语言,在设计的时候使用了很多Java经典的设计模式,例如:观察者模式,装饰器模式,适配器模式,单例模式,中介者模式等。这些经典的设计模式的使用极大的提高了程序的可维护性,在设计数据库表时也充分考虑了程序将来的扩展。

1.1.5 安全性需求

本产品在设计时采用正则表达式对用户输入进行过滤,同时使用了较为可靠的sql连接、查询方式。为了避免用户破坏数据库,对数据库的连接信息写入到了xml配置文件当中。

1.2 产品功能需求

1.2.1 登录功能

用户在输入账号后,客户端向服务端发送请求完成以下两个功能:

(1)如果账号正确则先从数据库中取出该账号对应的用户头像并将其显示在指定的位置。

(2)如果账号信息不正确,则头像为默认头像。

(3)点击登录,如果账号和密码都正确则进入主界面,如果其中有一项错误则直接弹出提示框,提示错误。

1.2.2 注册功能

注册功能允许用户通过网页注册相应的账号,注册时可以对个人基本信息进行填写,注册成功后将用户信息添加进数据库中。

1.2.3 添加好友功能

添加好友功能允许用户向好友发出好友申请,好友申请具有以下功能:

(1)向好友发出好友申请信息。

(2)当收到好友的好友申请时,可以在界面中显示好友申请信息,包括申请者的昵称等,并可以将好友加入任意的分组中。

(3)同意添加好友后,列表即可更新,新添加的好友就会显示在好友列表相应的分组中。同时好友在添加好友后列表也会进行相应的更新。

(4)可以在网络上查找好友,如果好友存在则显示好友的昵称和头像,如果输入的账号不符合规定会有相应的提示,如果不存在也会有对用的提示信息。

1.2.4 好友上线提示功能

主界面初始化时,好友列表中不在线的好友头像为灰色,同时点击头像无法进入聊天界面,但是可以查看好友信息。当有好友上线时,灰色头像的好友就会自动变换状态,颜色也会变为彩色。

1.2.5 天气预报功能

天气预报功能提供给用户一天内的天气情况,功能包括:

(1)根据天气情况显示相应的天气图案。

(2)鼠标悬停在天气图案上时可以出现具体的天气信息,包括温度,风向,穿衣指数,穿衣建议等。

1.2.6 删除好友功能

在好友列表中选中要删除的好友,点击鼠标右键,在弹出的菜单中点击删除好友即可将好友从好友列表中删除,同时好友信息也将从数据库中被删除。

1.2.7 黑名单功能

在好友列表中选中要加入黑名单的好友,点击鼠标右键,在弹出的菜单中点击加入黑名单,即可将好友从好友列表原先的分组中移入黑名单,同时好友信息也将从数据库中被修改。如果列表中没有黑名单分组,系统会自动创建黑名单分组。

1.2.8 查看个人信息功能

点击主界面中显示的头像即可进入个人信息查看界面,在个人信息界面中,有以下几个功能:

(1)个性背景展示。

(2)点击随机切换个性背景。

(3)个人详细信息展示。

(4)照片墙功能。

1.2.9 修改个人信息功能

进入个人信息界面后可以在右侧第一行看到编辑信息几个蓝色的字,点击即可进入个人信息编

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

索半斤_suobanjin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值