互联网即时聊天工具是如何实现的呢?

互联网即时聊天工具是如何实现的呢?,第1张

如下:
该软件采用P2P方式,各个客户端之间直接发消息进行会话聊天,服务器在其中只扮演协调者的角色(混合型P2P)。
1会话流程设计
当一个新用户通过自己的客户端登陆系统后,从服务器获取当前在线的用户信息列表,列表信息包括了系统中每个用户的地址。用户就可以开始独立工作,自主地向其他用户发送消息,而不经过服务器。每当有新用户加入或在线用户退出时,服务器都会及时发消息通知系统中的所有其他用户,以便它们实时地更新用户信息列表。
按照上述思路,设计系统会话流程如下:
(1)用户通过客户端进入系统,向服务器发出消息,请求登陆。
(2)服务器收到请求后,向客户端返回应答消息,表示同意接受该用户加入,并顺带将自己服务线程所在的监听端口号告诉用户。
(3)客户端按照服务器应答中给出的端口号与服务器建立稳定的连接。
(4)服务器通过该连接将当前在线用户的列表信息传给新加入的客户端。
(5)客户端获得了在线用户列表,就可以独立自主地与在线的其他用户通信了。
(6)当用户退出系统时要及时地通知服务器。
2用户管理
系统中,无论是服务器还是客户端都保存一份在线用户列表,客户端的用户表在一开始登陆时从服务器索取获得。在程序运行的过程中,服务器负责实时地将系统内用户的变动情况及时地通知在线的每个成员用户。
新用户登录时,服务器将用户表传给他,同时向系统内每个成员广播“login”消息,各成员收到后更新自己的用户表。
同样,在有用户退出系统时,服务器也会及时地将这一消息传给各个用户,当然这也就要求每个用户在自己想要退出之前,必须要先告诉服务器。
3协议设计
31客户端与服务器会话
(1)登陆过程。
客户端用匿名UDP向服务器发送消息:
login,username,localIPEndPoint
消息内容包括3个字段,各字段之间用“,”分隔:“login”表示请求登陆;“username”为用户名;“localIPEndPoint”是客户端本地地址。
服务器收到后以匿名UDP返回如下消息:
Accept,port
其中,“Accept”表示服务器接受了请求;“port”是服务所在端口,服务线程在这个端口上监听可能的客户连接,该连接使用同步的TCP。
连上服务器,获取用户列表:
客户端从上一会话的“port”字段的值服务所在端口,于是向端口发起TCP连接,向服务器索取在线的用户列表,服务器接受连接后将用户列别传输给客户端。
用户列表格式如下:
username1,IPEndPoint1;username2,IPEndPoint2;;end
username1,username2为用户名,IPEndPoint1,IPEndPoint2为它们对应的端点。每个用户的信息都有个“用户名+端点”组成,用户信息之间以“;”隔开,整个用户列表以“end”结尾。
31服务器协调管理用户
(1)新用户加入通知。
由于系统中已存在的每个用户都有一份当前用户表,因此当有新成员加入时,服务器无需重复给系统中的每个成员再传送用户表,只要将新加入成员的信息告诉系统内的其他用户,再由他们各自更新自己的用户表就行了。
服务器向系统内用户广播发送如下消息:
端点字段写为“remoteIPEndPoint”,表示是远程某个用户终端登陆了,本地客户线程据此更新用户列表。其实,在这个过程中,服务器只是将受到的“login”消息简单地转发而已。
(2)用户退出。
与新成员加入时一样,服务器将用户退出的消息直接进行广播转发:
logout,username,remoteIPEndPoint
其中,“remoteIPEndPoint”为退出系统的远程用户终端的端点地址。
31用户终端之间聊天
用户聊天时,他们各自的客户端之间是以P2P方式工作的,彼此地位对等,独立,不与服务器发生直接联系。
4系统实现
41服务线程
系统运行后,先有服务器启动服务线程,只需单击“启动”按钮即可。
即时聊天软件可以在两名或多名用户之间传递即时消息的网络软件,大部分的即时聊天软件都可以显示联络人名单,并能显示联络人是否在线。使用者发出的每一句话都回即时显示在双方的萤幕上。

今天教务老师给大家收集整理了软件测试技术自考教材的相关问题解答,还有免费的自考历年真题及自考复习重点资料下载哦,以下是全国我们为自考生们整理的一些回答,希望对你考试有帮助!
北大青鸟java培训:软件测试技术自学需要阅读哪些书籍?软件测试相信现在很多学习互联网IT技术的人已经都接触或者说了解过了,那么在不参加培训班的基础上,如何才能学习掌握软件测试技术呢对了,就是通过读书来学习。
下面,太原软件测试培训学校就给大家分享了关于软件测试的几本书,一起来了解一下吧。
(1)软件测试的艺术软件测试工程师入门“圣经”。
软件从业人员必备书。
计算机经典著作。
技术类“常青树”书籍。
本书对软件测试类型、用例设计方法、测试策略等,都有精彩具体的描述;总结的十大软件测试经典原则,至今仍被广为引用。
此书100多页,适合每年精读一次,每次都会有新的感悟。
PS:此书版出版于1979年,比八九零后存在的历史还长。
(2)软件测试软件测试行业入门“地图”。
软件测试新人的指导书。
本书描述了软件测试行业的“概貌”,开发过程、软件产品、实战测试策略、测试相关文档、测试未来、测试职业等。
有心人,能从此书中找到软件测试世界的入口,找到知识才能的用武之地。
(3)代码大全软件开发世界的“入口地图”。
软件行业人员的“新手圣经”,“百科全书”。
经典中的经典,大师中的大师,众多大咖联名点赞。
本书总结、归纳了,软件工程业行之有效的、细节具体的实践知识,让你可以利用前人智慧、避免重蹈覆辙。
如,通过“隐喻”理解和表达软件,高质量的编程经验细节,软件质量改进方法,软件集成,软件人员,等等。
几乎每一章,都是描述了软件职业的一个深入方向,每章的“更多资源”,是更多本的深入学习的经典书籍。
此书近1000页,适合先系统化学习,了解全貌,再随时查阅,或深入研究。
PS:如果你想做一个真正的“软件行业”相关人员,此书必读。
领学习资料
计算机培训
你好,我想买自考的书,请问你那里有下面买几书。自考的软件工程专业自考的书建议买盗的,在标价的基础上有3到6折的优惠什么的
还有就是考什么就买什么书,虽然说自考的书都感觉差不多,不过有的书可能在明年或什么时候和改了
网上买,分摊一下一本才12–16
哪里多少天到货什么都有吗
这是我的专业课
肯定都有的,如果是小县城一般4-5天就可以到,市的话2-3天就可以了
我一般玩的是淘宝,进去一搜就很多
软件人工测试技术有哪些测试方法?软件人工测试技术有哪些测试方法该技术共涉及四种方法:代码检查、代码走查、桌面检查、同行评审;其更着重详细讲述的是第一个方法。
《软件测试技术的主要内容是什么?软件测试技术》的主要内容是什内容分为三部分,第一部分为概念基础、测试理论的背景及发展,简要地分析了当前测试技术的现状;第二部分介绍软件测试的程序分析技术、测试技术,软件测试的方法和策略,分析了软件业在测试方面的研究成果,并总结了测试的基本原则和一些好的实践经验;第三部分介绍了两种测试工具软件基于Windows的WinRunner和服务器负载测试软件WAS
自考/成考有疑问、不知道自考/成考考点内容、不清楚当地自考/成考政策,点击底部咨询官网老师,免费领取复习资料:>众所周知,服务器是整个网络系统和计算平台的核心,许多重要的数据都保存在服务器上,很多网络服务都在服务器上运行,因此服务器性能的好坏决定了整个应用系统的性能。

现在市面上不同品牌、不同种类的服务器有很多种,用户在选购时,怎样从纷繁的型号中选择出所需要的,适合于自己应用的服务器产品,仅仅从配置上判别是不够的,能够通过实际测试来筛选。而各种的评测软件有很多种,你应该选择哪个软件测试?下面就介绍一些较典型的测试工具:

(一)服务器整机系统性能测试工具

一台服务器系统的性能可以按照处理器、内存、存储、网络几部分来划分,而针对不同的应用,可能会对某些部分的性能要求高一些。

Iometer(>

市面上存在两种数据库负载均衡的思路:1

基于数据库连接的负载均衡:例如总共有100个数据库连接,50个连接登录到数据库机器A,另外50个连接登录到数据库机器B,这样每个连接中接下来的所有请求全都是发往同一台数据库机器的

这种数据库负载均衡的思路模拟了WEB上的负载均衡方法,但是由于WEB连接是短时间连接(连接建立后,获取需要的HTML等资源后,连接马上被关闭),而数据库连接是长时间连接(连接建立后,可长时间保持,客户可不停向数据库发送SQL请求,数据库做出回答,如此不断循环直到连接被人为或因错而断开为止),因此这种数据库负载均衡思路存在着明显的缺点:有可能会发生绝大部分的请求压力都集中到某台数据库机器上去,从而使得负载均衡效果失效

2

基于批处理请求的负载均衡:在建立数据库连接的时候,会同时与每台数据库服务器建立连接,之后针对客户端的每次请求,都会根据负载均衡算法,独立地选出某个数据库节点来执行这个请求

此种思路符合数据库长时间连接的特征,不存在上面所述的基于连接的负载均衡方法的缺点

市面上的负载均衡厂商,既有基于连接的,也有基于批处理请求的,用户需仔细辨别才能找到自己想要的合适产品


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12784664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存