Re[3]: Есть вопрос по работе с сокетом через порты завершени
От: acDev Россия  
Дата: 26.09.11 14:39
Оценка:
Здравствуйте, s3dworld, Вы писали:

S>То есть получается, что когда я хочу передать 7 МБ, на порт завершения может прийти уведомление,где в параметре lpNumberOfBytes я получу 3 МБ и мне нужно снова вызвать WSASend() чтобы отправить не отправленные 4 МБ (не подумайте что я буду отправлять заново весь буфер, только то, что не отправилось)?


На практике параметр lpNumberOfBytes возвратит либо 0, либо 7 МБ !!!
Другое означает сбой винды.

S>А если в момент асинхронной операции произойдёт отключение сокета, где я могу получить код ошибки после получения управления от GetQueuedCompletionStatus()? Просто вызвав GetLastError()?


Верно (если WSASend вернула WSA_IO_PENDING).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.