abh*_*bhi 8 multithreading asynchronous network-programming tcp synchronous
我是C++的新手,我正在尝试开发基于boost :: asio库的客户端 - 服务器应用程序.我(仍然)无法正确理解同步和异步模式之间的区别.我以前研究过HTTP和AJAX等Web协议服务.从这个解释可以看出,HTTP是同步的,而AJAX是异步的.在同步和异步方面TCP套接字通信有什么区别?从企业级多线程应用程序开发的角度来看哪种模式更好,为什么?
据我所知同步模式下,在一段时间内的客户端的块直到其从服务器接收数据包/数据消息.在异步模式下,客户端执行另一个操作而不阻止当前操作.为什么会有所不同?async是UDP的同义词吗?它似乎并不关心它是否收到传输确认.
use*_*421 14
TCP传输始终是异步的.什么是同步或异步是API的行为.同步API在您调用它时执行操作:例如,send()将数据移动到TCP发送缓冲区并在完成后返回.异步API在您调用它时启动,在它返回给您后独立执行,并回调您或提供可通过其通知完成的可查询句柄.
在您发送请求,接收响应,显示或处理响应的意义上,HTTP是同步的.
Ajax只是异步,因为它独立于周围HTTP请求中的页面请求/响应周期而运行.这是一个糟糕的术语选择.最好使用"嵌套","带外"这样的术语,......