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

D>Здравствуйте, s3dworld, Вы писали:


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


D>На практике параметр lpNumberOfBytes возвратит либо 0, либо 7 МБ !!!

D>Другое означает сбой винды.

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


D>Верно (если WSASend вернула WSA_IO_PENDING).

Спасибо!

А у меня вот такой вопрос. Стоит ли создавать несколько портов завершения для обработки тысячи сокетов или же лучше всех их привязать к одному порту?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.