点击空白处退出提示
作品详情
用Java语言实现一个C/S聊天软件。类似于同学们所熟悉的QQ。
二、系统需求分析
1.有用户注册系统
2.有用户登录系统
3.有用户聊天界面
4.有一个聊天室
5.支持私人聊天
6.能看见有多少人在聊天室
7.漂亮的ui界面
三、系统设计
客户端:
1.登录系统,需要有两个监听事件:注册和登录账户。注册能够将登录跳转到注册界面。登录功能能够核对被登录用户的账号,密码和登录状态,判定用户具不具有登录权限,如果登录成功,会修改数据库中该账户的登录状态。
2.注册界面,需要用户输入我们需要记录的关键值:用户昵称和密码。系统会自动生成账号,并存入数据库,为登录核对提供依据。
3.用户界面,该界面涵盖了我们所提供的两种服务:多人聊天室和私人聊天。并加入两种事件的监听功能,如果用户点击多人聊天,即进入多人聊天系统。如果用户点击私人聊天,即进入私人聊天系统。
4.多人聊天,当用户进入多人聊天界面的时候,系统会自动生成一个socket,并连接多人聊天服务器,同时启动写和读的线程,设置线程的睡眠时间为1000。当用户写的时候正好启动写线程且线程活跃的时候,就写入数据,发送给服务器。当收到服务器传来的数据的时候,write线程会接收数据,并打印到显示栏中。
多人聊天服务端口为9999.
5. 私人聊天,和多人聊天比较类似,就是在进入私人聊天的时候,会立刻将自己的用户名称发送给服务器,以便服务器识别用户进行发送数据,在发送数据方面,和服务器约定了协议,协议句型是:
发送方@接收方:内容
通过该协议,能够识别发送方和接收方的名字,便于服务器转发信息。当收到服务器传来的数据的时候,write线程会接收数据,并打印到显示栏中。
私人聊天服务器端口为9998.
服务器端:
1. 多人聊天服务器,当有用户点击多人聊天按钮的时候,就会连接多人聊天服务器,服务器会将该用户的套接字加入服务器的链表当中,当有用户向聊天室发送数据的时候,read线程活跃的时候,聊天室会将该数据转发到所有的客户端上。
私人聊天服务器,链表的数据节点是我们自定义的,数据结构为:套接字和用户名称。当用户连接的时候,会将用户名字发送给服务器,服务器接收名字。私人服务器和私人客户端有通信协议,按照协议解析发送方和接收方,当链表里没有接收方名称的时候,会报错给发送方,如果找到接收方,就同时转发数据给两个客户端。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论