服务器是否可以发送多个响应客户端的请求?

时间:2014-04-01 21:45:40

标签: java client protocols

我正在学习套接字和服务器/客户端模型概念,并且很难理解服务器客户端概念。如果客户端发送请求,服务器是否可以发送多个响应?或者我们必须把所有东西都放在一个响应中?
对于记忆游戏程序,当客户点击一张牌时,该动作会向服务器发送一个请求,以便在每个玩家的程序中转换该牌,如果第二张牌不匹配,服务器会告诉玩家等待2秒,转回2张牌,然后转向下一位牌手。服务器可以在多个响应中执行此操作,还是必须在单个响应中执行此操作?由于没有客户要求某些人回复,所以我不知道它是否可以实现。

2 个答案:

答案 0 :(得分:1)

如果您正在谈论TCP连接,在连接建立后客户端和服务器是等效的,两者都可以自由发送数据,并且可以随意发送数据和/或关闭它们的连接结束。 / p>

编辑:经过几次通过,我想我已经明白你问题的第二段是针对什么了 当然,没有任何东西可以阻止服务器做任何事情。大多数情况下,服务器似乎在阻止InputStream.read()操作。如果您希望服务器即使在没有网络输入发生时也能运行,一种解决方案可能是使用读取超时,或者在实际读取之前检查输入流的可读性。

答案 1 :(得分:0)

这不是你的完整答案。 对于一个请求,您会收到一个回复​​。

请阅读wikipedia中有关基本信息

的信息

"请求 - 响应,也称为请求 - 回复,是一种消息交换模式,其中请求者向请求者系统发送请求消息,该系统接收并处理请求,最终返回消息响应。这是一种简单但功能强大的消息传递模式,允许两个应用程序通过一个通道进行双向对话。这种模式在客户端 - 服务器体系结构中尤为常见。1 为简单起见,此模式通常以纯粹同步的方式实现,如在HTTP上的Web服务调用中,它保持连接打开并等待直到响应被传递或超时期限到期。但是,请求 - 响应也可以异步实现,并且在稍后的某个未知时间返回响应。这通常被称为"同步异步"或" sync / async",并且在企业应用程序集成(EAI)实现中很常见,其中缓慢聚合,时间密集的功能或必须在构建和交付响应之前执行人工工作流程。"