多对多聊天系统(Java网络编程)

代码实现功能

  • 登录(仅使用用户名登录、使用正则表达式进行登录用户名校验)
  • 登录响应
  • 在线人员名单查询
  • 私发信息
  • 群发信息
  • 发送响应
  • 服务端对客户端在线检测(使用“心跳信号”)
  • 下线提醒

使用了

  • 网络编程
  • 多线程(没有使用JUC中线程安全集合,仅使用了普通的集合类)
  • 枚举类型
  • 正则表达式

博主暂时能力有限,没有还对以上技术进行深入的研究,本篇的代码只是对以上技术的简单使用,可能存在线程安全问题。

注意事项:在ObjectInputStream/ObjectOutputStream使用Socket的字节输入输出流进行创建实例的时候,需要注意在客户端和服务端创建ObjectInputStream、ObjectOutputStream的顺序,顺序不正确会抛异常。
且单个Socket实例的字节输入输出只能被一对ObjectInputStream、ObjectOutputStream流使用创建两者的实例,多次创建也会抛异常。
至于以上两种情况为什么抛异常,请查阅书籍或相关博客两节更多。
多对多聊天系统(Java网络编程)

代码推送到了Gitee上:代码地址

最后感谢大佬同学帮我一起改BUG,他写的博客还比较好:博客主页 欢迎浏览点赞哦~

上一篇:fromzhihutheirattention


下一篇:Java序列化(ObjectOutputStream)和反序列化(ObjectInputStream)