0

如您所知,WSASend-completion-WSASend-...(repeat) 保证按顺序发送数据。但是,听说 WSASend-WSASend-WSASend-completion-completion-completion 也保证按顺序发送数据,虽然完成的顺序没有。是对的吗?

请回复。提前致谢。

裴贤治

4

1 回答 1

2

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

于 2011-10-05T22:46:12.733 回答