Предположим, у нас есть простой интернет-сокет, и он отправит 10 мегабайт (потому что я хочу игнорировать проблемы с памятью) случайных данных. Есть ли разница в производительности или метод наилучшей практики, который следует использовать для получения данных? Конечные выходные данные должны быть представлены байтом []. Да, я знаю, что писать произвольное количество данных в память плохо, и если бы я загружал большой файл, я бы не делал этого так. Но, ради аргумента, давайте проигнорируем это и предположим, что это небольшой объем данных. Я также понимаю, что узким местом здесь является, вероятно, не управление памятью, а получение сокета. Я просто хочу знать, какой будет наиболее эффективный метод получения данных.C# способы получения данных из сокета?
Несколько изворотливых способов могут думать:
есть список и буфер, после того, как буфер заполнен, добавьте его в список и в конце List.toArray(), чтобы получить byte []
Запишите буфер в поток памяти после того, как он завершил создание байта [] в stream.Length и прочитал все это в нем, чтобы получить выход byte [].
Есть ли более эффективный/лучший способ сделать это?
Да, это похоже на самый простой и вместе с тем хороший ответ! – Daniel