Re[10]: wsasend синхронизация
От: abrarov Россия http://asio-samples.blogspot.com/
Дата: 03.04.12 18:13
Оценка:
B>стоп я запутался
B>1. вот юзер посылает чтото _send_data(dest,size1,buf1)
B> потом сразу же еще чото _send_data(dest,size2,buf2)
B> одному и томуже dest. как я должен теперь разрулить отправку через wsasend.

> Накапавливаем исходящие сообщения в собственном буфере (в очереди) и отсылаем их по мере возможности (после успешного завершения очередной операции отправки).


B>2. по поводу отправки размера и самих даных если я правильно понял то это — выдиляем новый буфер size+2, пишем в первые 2 байта размер, а потом копируем то что нужно послать и отправляем. тогда вопрос, может есть функция которой передается массив буферов и она ои отправляет за один раз, а то каждый раз выдилять/освобождать память для каждой посылки не очень как то. и кстате почему 2 байта на размер, что нельзя послать за раз больше 64кб?


Вот алгоритм для чтения. Для записи будет похожий — тут уж лучше Вам самому подумать.
"Выделять буферы" вообще лишнее — используем один буфер и serializator + очередь ref-counted сообщений.
Programs must be written for people to read, and only incidentally for machines to execute
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.