Несколько немедленных номеров вызовов WSASend и порядок отправки данных - PullRequest
0 голосов
/ 06 октября 2011

Как вы знаете, WSASend-creation-WSASend -... (повтор) гарантирует отправку данных по порядку.Тем не менее, я слышал, что WSASend-WSASend-WSASend-завершение-завершение-завершение-завершение ТАКЖЕ ГАРАНТИРУЕТ отправку данных по порядку, хотя порядок завершения - нет.Это правильно?

Пожалуйста, ответьте.Заранее спасибо.

Hyunjik Bae

1 Ответ

2 голосов
/ 06 октября 2011

Если в очереди одновременно находятся несколько запросов, их данные отправляются в том порядке, в котором они поставлены в очередь, и процедуры их завершения также ставятся в очередь в том же порядке.Вторая отправка не происходит до тех пор, пока первая отправка не завершится, третья отправка после второй отправки завершится и т. Д. Однако, если у вас есть несколько потоков, обрабатывающих завершения, возможно параллельное выполнение обработок, которое может выйтипорядка в зависимости от переключения контекста и тому подобное.Вот почему вам необходимо связать идентифицирующее значение с каждым ожидающим запросом, чтобы вы могли сопоставить его с его завершением независимо от порядка и не иметь нескольких ожидающих запросов для отправки частей одного и того же ресурса.

...