Re: Есть вопрос по работе с сокетом через порты завершения в
От: 11molniev  
Дата: 26.09.11 13:02
Оценка:
Здравствуйте, s3dworld, Вы писали:
.....
S>Мне не понятно поведение системы в такой вот ситуации: я вызываю WSASend() и прошу её передать 75 МБ (размер выбрал для наглядности примера). Соединение с сокетом существует, операция не может быть выполнена мгновенно, в результате я получу ошибку WSA_IO_PENDING (собственно это успешная ошибка). Я занимаюсь своими делами, а система за меня отсылает данные (видимо тут я только должен позаботиться чтобы буфер с отсылаемыми данными не накрылся при выходе из области видимости, в которой вызывалась WSASend(), то есть сделать его не на стеке как в приведённом выше примере). Через 40 секунд сервер (а может и я сам) завершает соединение со мной, но я успел передать только 13 МБ. Функция GetQueuedCompletionStatus() передаст управление. И вопрос к Вам, что она мне вернёт?

Скока передаст столько и вернет. Тоже относиться и к синхронному выполнению WSASend.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.