# 交互式系统
# “什么是交互式系统?”
分布式系统是一个系统,其组件位于不同的联网计算机上,通过从任何系统中相互传递信息来沟通和协调其行动。各个组件之间相互作用,以实现一个共同的目标。
分布式系统允许资源共享,包括由连接到网络的系统共享软件。分布式系统的例子 / 分布式计算的应用:内联网、互联网、WWW、电子邮件。电信网络。电话网络和蜂窝网络。
# ” 制作一个简单的分布式系统 “
- 方案设计:
- 只有一对人可以使用这个聊天系统
- 第一个打开系统的人是 client1st,第二个打开系统的人是 clent2nd。
- 每个人每次只能输入一条信息,然后他们必须等待对方的回复。
- 当一个人输入时,另一个人必须等待。
- 输入 end 以结束程序。
- 使用该程序的注意事项:
- 同一个字符串不能由一个人连续输入,否则将被视为没有输入。被视为没有输入
- 不能输入换行符
- 两个人都必须输入’结束’来结束聊天。
- 结构框架:
- 服务器中的键的长度用来确定它是否是第一个成员,因为如果长度为 1,则服务器为空,则之前没有人打开过聊天并输入过信息,则该成员为 client1st。
- 然后有必要确定用户是否想聊天,即确定 "结束" 是否已被输入。
- 第一个输入需要单独呈现分类,并在其中加入欢迎词,提醒用户是 client1st 还是 client2nd。所以有两种方法来判断是否是第一个输入并读取,第一种是直接判断 message1 和 message2 第二种是判断服务器中的键值是否与消息相同(注意,从服务器上拿下来的字符串在解码后会多出一个’\n’,所以不能直接判断,应该加上’\n’进行判断。
- 之后我们需要明确两个状态的表示和判断,一个是输入,一个是等待。
在等待状态下 ,因为另一个成员没有任何输入,此时服务器对应的是对方消息的值和消息本身的值,所以可以利用这个功能来判断是否处于等待状态。
在等待状态下,我们需要做的就是等待,所以我设置了一个睡眠三秒的刷新来等待其他成员的输入。
在输入状态下,我们需要刷新信息的值,然后根据新的输入更新服务器上的相应值。 - 当通过输入’结束’来结束聊天时,需要为下一次清空服务器。