Sockets 使用Boost.Asio可以并发运行哪些套接字发送/接收操作
我知道可以在TCP和UDP套接字上同时运行异步发送和异步接收操作。但在这些情况下,预期的行为是什么:Sockets 使用Boost.Asio可以并发运行哪些套接字发送/接收操作,sockets,tcp,udp,boost-asio,Sockets,Tcp,Udp,Boost Asio,我知道可以在TCP和UDP套接字上同时运行异步发送和异步接收操作。但在这些情况下,预期的行为是什么: 在UDP套接字上同时调用两个异步发送操作 在UDP套接字上并发调用两个异步接收操作 在TCP套接字上同时调用两个异步发送操作 在TCP套接字上并发调用两个异步接收操作 我主要对第一个案例感兴趣;由于UDP不一定保留发送数据包的顺序,因此我不太关心它们的发送顺序是否与调用async_send的顺序不同 在没有增压ASIO的情况下也会发生同样的事情: 在UDP套接字上同时调用两个异步发送操作 两个数
我主要对第一个案例感兴趣;由于UDP不一定保留发送数据包的顺序,因此我不太关心它们的发送顺序是否与调用async_send的顺序不同 在没有增压ASIO的情况下也会发生同样的事情: 在UDP套接字上同时调用两个异步发送操作 两个数据报都将被发送 在UDP套接字上并发调用两个异步接收操作 哪个操作将接收下一个数据报是任意的,但这两个操作都将正常运行 在TCP套接字上同时调用两个异步发送操作 数据可能不可预测地交织 在TCP套接字上并发调用两个异步接收操作
数据可能会不可预测地交错。谢谢,这正是我所希望的。由于(正如您的回答所暗示的那样)ASIO知道这种用法,我想问的下一个问题是,POSIX和Win套接字是否都能保证这种行为。@PeterJankuliak我不确定他们是否能正式保证,但我所知道的每个实现都有这种可靠的行为。