多用户的即时通讯系统项目笔记


前言

本篇文章记录了编写一个多用户即时聊天系统的过程,系统中会使用多线程的方式来维持每个客户端,但是应该不会涉及epoll之类的IO复用技术。

一、功能实现和需求

该系统实现的功能有:

  1. 用户注册登录
  2. 用户拉取在线用户列表
  3. 用户之间私聊
  4. 传输文件
  5. 群发推送
  6. 。。未完待续

由于本项目没有编写相关的UI界面,因此客户端操作会在命令行窗口执行。其中一级界面和二级界面如下图所示:
一级界面
二级界面

或许以后会编写UI界面完善。
该项目还没使用到数据库相关内容,因此只用HashMap来存储少量的注册用户。

二、整体系统分析

1. 系统分析

其中系统结构图如下:
系统结构可以看出,我们用Message对象来进行通讯,User对象保存用户的信息。无论在客户端还是服务端,都会维持一个集合来存放线程,这些线程会持有一个socket,以达到多线程通讯的目的。

2. 公用类

由于C/S端之间会用到Message对象和User对象进行通信,所以需要在两端编写这两个公用类。代码如下

/**
* Message类
*/

public class Message implements Serializable {
    //需要序列化
    private static final long serialVersionUID=1L;
    private String sender;//发送方
    private String getter;//接收方
    private String content;//传送的内容
    private String sendTime;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值