2011-10-05 73 views
0

如您所知,WSASend-completion-WSASend -...(repeat)确保按顺序发送数据。 但是,我听说WSASend-WSASend-WSASend-completion-completion-completion也保证按顺序发送数据,但是完成的顺序却没有。是对的吗?WSASend调用的多个立即数和数据发送顺序

请回复。提前致谢。

Hyunjik裴

回答

1

如果有多个请求在同一时间排队,他们的数据是,他们正在排队,和他们完成例程以相同的顺序排队,还有的顺序发送。第二次发送不会发生,直到第一次发送完成,第二次发送完成后发送第三次,等等。但是,如果您有多个线程处理完成,则可以并行处理完成,从而可以跳出的顺序取决于上下文切换等。这就是为什么您需要将识别值与每个待处理请求关联起来,以便您可以将其与其完成相匹配,而不管订单如何,并且没有多个待发送部分相同资源的待处理请求。