多个立即数量的WSASend调用和数据发送顺序

时间:2011-10-05 21:11:56

标签: winsock iocp

如您所知,WSASend-completion-WSASend -...(重复)保证按顺序发送数据。 但是,我听说WSASend-WSASend-WSASend-completion-completion-completion还保证按顺序发送数据,尽管完成顺序没有。是吗?

请回复。提前谢谢。

Hyunjik Bae

1 个答案:

答案 0 :(得分:2)

如果有多个请求一次排队,他们的数据按照排队的顺序发送,并且他们的完成例程也按照相同的顺序排队。第二次发送直到第一次发送完成,第三次发送在第二次发送完成后才发生,等等。但是,如果您有多个线程处理完成,则可以并行处理完成,这可以得到依赖于上下文切换等的顺序。这就是为什么您需要将标识值与每个待处理请求相关联,以便您可以将其与完成相匹配而不管顺序如何,并且没有多个请求等待发送相同资源的部分。