【问题标题】:Synchronous and Asynchronous data transmission between client and server客户端和服务器之间的同步和异步数据传输
【发布时间】:2014-07-12 15:30:08
【问题描述】:

我在程序中的线程上下文中理解同步和异步的概念,但我不确定这在通信中意味着什么。
更具体地说,我对在服务器和客户端之间进行异步通信意味着什么感到困惑......

在同步通信中,如有错误请指正,一方发送消息,然后等待接收响应,当响应到达时,它再次发送消息,依此类推...
在异步模式下会发生什么?
我一直在想象一个双向管道,其中没有关于轮到谁来传输信息的规则或协议,并且双方只要感觉就向管道中发送字节,并且在双方中,读取和写入到管道发生在两个不同的线程中。是这样吗?
再说一次,这只是一个疯狂的猜测,如果有人有我想阅读的解释。

【问题讨论】:

  • 注意,一个程序是使用同步还是异步网络IO完全独立于双方同意的有线协议。

标签: asynchronous network-programming


【解决方案1】:

您对同步通信的看法是正确的。对于异步通信,它的工作方式如下: 客户端向服务器发送一条消息,并可选地指定在接收到来自服务器的响应时要执行的操作。与此同时,客户端可以继续做其他事情,但是当服务器发送响应时,客户端知道如何处理该响应并处理响应。这通常通过“回调”函数完成。

试着把这想象成发送和接收电子邮件,你可以发送一封电子邮件,但是因为你不知道收件人会给你回一封电子邮件需要多长时间,你才能继续你的日常生活。收件人收到您的电子邮件并向您发送回复。收到电子邮件后,您决定下一步。 我希望这个解释可以帮助您概念化客户端和服务器之间的同步通信。

【讨论】:

    最近更新 更多