多用户即时通讯系统01

1.项目开发流程

2.需求分析

  1. 用户登录
  2. 拉取在线用户列表
  3. 无异常退出(包括客户端和服务端)
  4. 私聊
  5. 群聊
  6. 发文件
  7. 服务器推送新闻/广播

3.设计阶段

3.1界面设计

  1. 用户登录:
image-20220920182438430
  1. 拉取在线用户列表:
image-20220920182554305
  1. 私聊:
image-20220920182653008
image-20220920182712818
  1. 群聊:
image-20220920182846445
image-20220920182903138
image-20220920182920638
  1. 发文件:
image-20220920183046013
image-20220920183214104
  1. 文件服务器推送新闻:

3.2通讯系统整体设计

总结:

服务端:

  1. 当有客户端连接到服务器后,服务端会得到一个socket

  2. 启动一个线程,该线程持有该socket对象,也就是说socket是该线程的属性

  3. 为了更好的管理线程,需要使用集合来管理(如:HashMap)

客户端:

  1. 和服务端通信时,使用对象方式,可以使用对象流来读写

  2. 当客户端连接到服务端后,也会得到socket

  3. 启动一个线程,该线程持有socket

  4. 为了更好的管理线程,也将该线程放入到集合中

4.编码实现

4.1功能实现-用户登录

4.1.1功能说明

因为还没有学习数据库,我们认为规定 用户名/id = 100,密码为 123456 就可以登录,其他用户不能登录,后面使用HashMap模拟数据库,可以多个用户登录。

image-20220920184736385

4.1.2思路分析+框架图

5.测试阶段

6.实施阶段

标签智能推荐:

WPF 即时通信API文档

即时通信IM即时通信(InstantMessaging,IM)基于Micro底层IM能力开发,仅需植入SDK即可轻松集成聊天、会话、群组、资料管理能力,帮助您实现文字、图片、短语音、短视频等富媒体消息收发,全面满足通信需要。简介针对开发者的不同阶段需求及不同场景,即时通信IM团队提供了一系列解决方案,包括:Android、iOS、Windows、Web的SDK组件、服务端集成WebAPI接口、第三

运行级别

运行级别0、关机1、单用户【找回丢失密码】2、多用户状态没有网络服务3、多用户状态且有网络服务【最常用:无图形、有网络、多用户】4、保留的,未定义5、图形界面【常用】6、系统重启指定默认运行级别init0-6用字符来确定级别multi-user.target//3graphical.target//5返回当前级别systemctlget-default设置默认级别为多用户systemctlset-

零基础入门Socket网络编程到高级进阶与实战精讲

 从零开始,从进阶到深入,系统学习Socket编程技术,理论结合实践,掌握Socket核心技术。零基础入门Socket网络编程到高级进阶与实战精讲视频下载。目录:第一章课程介绍及Java语言简介第二章快速入门Socket网络编程第三章快速入门SocketUDP第四章快速入门SocketTCP第五章UDP辅助TCP实现点对点传输案例第六章简易聊天室案例第七章服务器传输优化-NIO第八章数据

技术分析| WebRTC开源服务器商业化过程中遇到的问题及挑战

WebRTC及其发展前景WebRTC,名称源自网页即时通信(WebReal-TimeCommunication)的缩写,是一个支持网页浏览器进行实时语音通话或视频通话的API,旨在建立一个互联网浏览器间的实时通信的平台。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。WebRTC官网的介绍如下:WebRTC是一个免费的开源项目,它通过简

操作系统(一)

交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。(3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。12、操作系统的基本特性(1)并发性(

Linux的运行等级

Linux的运行等级0:关机1:单用户【找回丢失的密码】2:多用户状态,没有网络服务3:多用户状态,有网络服务  **常用**4;系统未使用保留给用户5:图形化界面     **常用**6:系统重启基本语法:init【0/1/2/3/4/5/6】来自b站尚硅谷韩顺平老师的课,这是我的笔记

20211917 2021-2022-2 《网络攻防实践》第七周作业

动程序。Linux的系统调用机制Linux的系统调用通过软中断实现,用户程序为系统调用设置参数,程序执行“系统调用”指令产生中断异常,使得处理器切换到内核态,并跳转到异常处理程序执行系统调用处理函数,处理完之后再返回奋用户态程序。1.3.2Linux安全机制Linux身份认证机制:Linux用户:Root根用户,可以操作系统中任何的文件与命令普通用户,只能操作自己目录中的内容,执行权限受限系统用户

一个程序员的产品路:在线客服系统,开发两年的目标产品

况,我在一个十八线的小县城,算是自用职业?或者算是自己创业?反正就是自己给自己干活。那就介绍下我独自一人开发的产品,GOFLY在线客服系统。产品是使用Golang语言开发的,想要一飞冲天,所以起名GOFLY,足够简单足够有意。主要功能就是实现与网站/APP/公众号访客,进行实时的即时沟通。这里是我新启用的网址 www.v1kf.com ,旧网址是 gofly.sopa

初次安装linux系统

系统级别切换init1(切换级别)0是关机1是单用户2是多用户,不联网3是多用户4是不使用的5是xwindows,也就是有界面的6是重启初次安装更新yum-yupdate升级所有包,改变软件设置和系统设置,系统版本内核都升级yum-yupgrade升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变yumlistupdates列表更新卸载程序 rpm-qa|grepjdk&nb

linux的开机自启原理

linux下的/etc/init.d下的目录是开机启动的脚本地址,相当于win系统下的电脑开机启动位置 运行等级:Linux分了7个运行等级,分别用数字0,1,2,3,4,5,6标志,每个运行等级支持的功能不一样0:关机(init0关机)1:单用户模式(一个场景:管理员在配置系统的时候,不希望有人登录)2:无网络连接的多用户命令行模式3:有网络连接的多用户命令行模式4:不可用5:带图形界