У меня есть видеоданные, и я регулярно создаю новые кадры для многих клиентов. Я получаю кадры из библиотеки как IntPtr и int, представляющие размер байтового массива. В настоящее время я превращаю это в «Память» и отправляю его через NetworkStream, получая нулевое копирование довольно большого буфера, как только он у меня есть.
Я хотел бы попытаться сделать то же самое, используя SocketAsyncEventArgs для посмотрите, работает ли он лучше, и попробуйте эти пользовательские токены для нескольких клиентов. Однако я не могу понять, как сказать SocketAsyncEventArgs отправлять кусок памяти, на который указывает IntPtr, где int представляет известный размер при сохранении нулевой копии. Похоже, что какой-то умный Marshalling или «MemoryMarshal» должен добиться цели, но я этого не вижу.
Видите ли вы способ выполнить sh это?