C/S:采用socket+多线程+io+swing(awt)技术;

基本思路:在服务器端建立一个连接端口,专门用来让客户端连接服务器端,并且不断的监听客户端的连接请求。当用户请求连接上服务器的时候,为登录的用户开启一个端口,并且把这个端口放入一个全局的list容器中,同时给这个用户分配一个线程,用来不断的监听list容器中的端口是否有新的用户请求连接(或是否有用户发送信息过来),有的话为全部或指定的端口发送信息(io)。

客户端在连接上服务端后,同时开始一个线程,不断监听服务端是否有信息发送过来。在客户端发送信息的时候,通过socket向服务器端发送信息。

B/S:一般采用servlet+ajax+js+html

基本思路:用户登录的时记录下用户的session或把用户信息存放在全局的map容器中,以用户名为key或者session,消息内容存放在一个list容器中,并把存放消息的list容易设为value。用户发送信息并提交的时候,后天服务器收到信息,根据用户对象发送给不同对象(群聊或私聊),从map中遍历出指定的聊天对象,存放消息内容的list中加入所发送的信息。

客户在聊天页面中,通过ajax不断的访问后台,查看是否有新的信息,有则通过js,把信息在页面中显示出来。

转载于:https://blog.51cto.com/lzy100135835/777938

面试--java实现一个多人图文聊天室(c/s或b/s),写出思路相关推荐

  1. 如何简单的创建一个多人在线聊天室

    学习目标: 在本教程中,我们将要使用PHP和jQuery创建一个简单的在线聊天工具. 这种实用性的模块对于你想要有实时在线客户支持系统的网站可以说是完美. 废话不多说直接开始. 步骤1:HTML的代码 ...

  2. java控制层创建websocket_用Java构建一个简单的WebSocket聊天室

    前言 首先对于一个简单的聊天室,大家应该都有一定的概念了,这里我们省略用户模块的讲解,而是单纯的先说说聊天室的几个功能:自我对话.好友交流.群聊.离线消息等. 今天我们要做的demo就能帮我们做到这一 ...

  3. php 利用redis写一个聊天室,Redis实现多人多聊天室功能

    本文为大家分享了Redis支持多人多聊天室功能的设计代码,供大家参考,具体内容如下 设计原理 左边的一个数据域,代表两个聊天室,聊天室id分别是827,729 在聊天室827里,有2个人,分别是jas ...

  4. java源码聊天软件_【原创】基于Java NIO的多人在线聊天工具源码实现(登录,单聊,群聊)...

    近来在学习Java NIO网络开发知识,写了一个基于Java NIO的多人在线聊天工具MyChat练练手.源码公开在Coding上: 编写一个基于Java NIO的多人在线聊天工具,需要以下几方面的知 ...

  5. JAVA 基于TCP的多人网络聊天室 实现过程

    主要实现功能 多人在线聊天 发送私密消息 新用户加入提示 用户离开提示 功能演示 服务器: package dome;import java.io.DataInputStream; import ja ...

  6. Java NIO示例:多人网络聊天室

    一个多客户端聊天室,支持多客户端聊天,有如下功能: 功能1: 客户端通过Java NIO连接到服务端,支持多客户端的连接 功能2:客户端初次连接时,服务端提示输入昵称,如果昵称已经有人使用,提示重新输 ...

  7. 实践:《从头到脚撸一个多人视频聊天 — 前端 WebRTC 实战(一)》

    2019独角兽企业重金招聘Python工程师标准>>> 请先阅读原文,链接:从头到脚撸一个多人视频聊天 - 前端 WebRTC 实战(一),本文只涉及实践过程中的问题 1.video ...

  8. 实现一个简单的语音聊天室(多人语音聊天系统)

    多人语音聊天,或语音聊天室,是即时通信应用中常见的功能之一,比如,QQ的语音讨论组就是我们用得比较多的. 本文将基于最新版本的OMCS(V3.5)实现一个简单的语音聊天室,让多个人可以进入同一个房间进 ...

  9. rudesocket如何使用_[WebSocket入门]手把手搭建WebSocket多人在线聊天室(SpringBoot+WebS...

    前言 本文中搭建了一个简易的多人聊天室,使用了WebSocket的基础特性. 源代码来自老外的一篇好文: 本文内容摘要: 初步理解WebSocket的前后端交互逻辑 手把手使用 SpringBoot ...

最新文章

  1. 1、IO输入输出流 简介
  2. IT项目协调-网络整改项目
  3. DBUtils事务处理
  4. linux禁止root用户直接登录sshd并修改默认端口
  5. java 对list增删_List 中正确的增删操作
  6. Fatal error in launcher: Unable to create process using ''之解决办法
  7. wiki迁移方法操作步骤
  8. Google Native Client介紹
  9. python基础编程语法-Python基础语法一
  10. lshw linux_Linux lshw命令–获取Linux硬件信息
  11. JSONObject 与 JSONArray 使用
  12. 简单比较init-method,afterPropertiesSet和BeanPostProcessor
  13. vax与vay的区别
  14. portainer的安装使用
  15. (C语言)2048游戏实现
  16. DDOS防御抗D平台方案
  17. 微信小程序如何实时监测网络状态变化?
  18. java毕业设计水利施工安全检测系统设mybatis+源码+调试部署+系统+数据库+lw
  19. 计算机视觉中的多视图几何 -- 2D射影几何与变换 -- 相似、仿射与射影变换的层次
  20. 计算机表演赛noc竞赛,【转载】NoC大赛教师竞赛项目介绍

热门文章

  1. 一天三场签约,百度Apollo智能交通这速度,真快!
  2. 一文看尽CVPR 2019十大新研究:“不看也知”成热点,无人车新增重磅开源数据集...
  3. [已解决] InnoDB: preallocating bytes for file ./ibdata1 failed with error
  4. Django--Uploaded Files以及Handlers
  5. OS X 下在代码中枚举所有进程的方法
  6. linux查看内核版本、系统版本、系统位数(32or64)
  7. 远程访问×××——Easy ×××
  8. C#.NET跨线程控件的相关操作
  9. TCP快速重传为什么是三次冗余ack,这个三次是怎么定下来的?
  10. 计算机组成原理 — 服务器组成