Здравствуйте, acDev, Вы писали:
D>Здравствуйте, s3dworld, Вы писали:
S>>То есть получается, что когда я хочу передать 7 МБ, на порт завершения может прийти уведомление,где в параметре lpNumberOfBytes я получу 3 МБ и мне нужно снова вызвать WSASend() чтобы отправить не отправленные 4 МБ (не подумайте что я буду отправлять заново весь буфер, только то, что не отправилось)?
D>На практике параметр lpNumberOfBytes возвратит либо 0, либо 7 МБ !!! D>Другое означает сбой винды.
S>>А если в момент асинхронной операции произойдёт отключение сокета, где я могу получить код ошибки после получения управления от GetQueuedCompletionStatus()? Просто вызвав GetLastError()?
D>Верно (если WSASend вернула WSA_IO_PENDING).
Спасибо!
А у меня вот такой вопрос. Стоит ли создавать несколько портов завершения для обработки тысячи сокетов или же лучше всех их привязать к одному порту?