Преобразование Барроуза — Уилера или как пережать траффик
- Cat
- adviser
- Сообщения: 203
- Зарегистрирован: 22 июл 2010, 09:53
- Версия LabVIEW: 12
- Контактная информация:
Преобразование Барроуза — Уилера или как пережать траффик
Добрый день! Товарищи, кто занимался удаленной работой, как вы пережимали траффик? Понимаю, что нужно оптимизировать данные, подготавливать и так далее, но сейчас нет возможности получить конечное представление, какие данные будут, а какие нет. Поэтому существующие данные с избыточностью, хочу пережать и восстановить. Может быть есть готовые библиотеки? Кто, как решал такие задачи?
p/s. обмен между двумя Vi, установленных в одной сети ethernet.
p.p.s http://habrahabr.ru/post/142492/
p/s. обмен между двумя Vi, установленных в одной сети ethernet.
p.p.s http://habrahabr.ru/post/142492/
Чеширский Кот - совсем не тот, что чешет языком.
-
- beginner
- Сообщения: 22
- Зарегистрирован: 21 янв 2015, 10:46
- Версия LabVIEW: 2013
- Контактная информация:
Re: Преобразование Барроуза — Уилера или как пережать траффи
Привет!
Попробуй вот эту. Библиотека которую мы собрали для расспаковки gzip формата (данные получаем с сервера). Для запаковки, к сожалению, нет, но есть код С#:
var response = (HttpWebResponse)httpRequest.GetResponse();
var responseBuff = ReadFully(response.GetResponseStream());
if (response.ContentEncoding.ToLower().Contains("gzip"));
responseBuff = new CompressProvider().Decompress(responseBuff);
public class CompressProvider
{
public byte[] Decompress(byte[] data)
{
MemoryStream memoryStream = new MemoryStream(data, 0, data.Length);
MemoryStream decompressedStream = new MemoryStream();
int totalRead = 0;
int blockSize = 1024;
byte[] tempBuffer = new byte[blockSize];
using (GZipStream gzStream = new GZipStream(memoryStream, CompressionMode.Decompress))
{
while (true)
{
int bytesRead = gzStream.Read(tempBuffer, 0, blockSize);
if (bytesRead == 0)
break;
decompressedStream.Write(tempBuffer, 0, bytesRead);
totalRead += bytesRead;
}
}
return decompressedStream.ToArray();
}
MemoryStream - библиотека C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll
GZipStream - C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll
Отсюда можно сообразить запаковку, поменяв CompressionMode.Decompress на CompressionMode.Сompress
Попробуй вот эту. Библиотека которую мы собрали для расспаковки gzip формата (данные получаем с сервера). Для запаковки, к сожалению, нет, но есть код С#:
var response = (HttpWebResponse)httpRequest.GetResponse();
var responseBuff = ReadFully(response.GetResponseStream());
if (response.ContentEncoding.ToLower().Contains("gzip"));
responseBuff = new CompressProvider().Decompress(responseBuff);
public class CompressProvider
{
public byte[] Decompress(byte[] data)
{
MemoryStream memoryStream = new MemoryStream(data, 0, data.Length);
MemoryStream decompressedStream = new MemoryStream();
int totalRead = 0;
int blockSize = 1024;
byte[] tempBuffer = new byte[blockSize];
using (GZipStream gzStream = new GZipStream(memoryStream, CompressionMode.Decompress))
{
while (true)
{
int bytesRead = gzStream.Read(tempBuffer, 0, blockSize);
if (bytesRead == 0)
break;
decompressedStream.Write(tempBuffer, 0, bytesRead);
totalRead += bytesRead;
}
}
return decompressedStream.ToArray();
}
MemoryStream - библиотека C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll
GZipStream - C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll
Отсюда можно сообразить запаковку, поменяв CompressionMode.Decompress на CompressionMode.Сompress
- Вложения
-
[Расширение dll было запрещено, вложение больше недоступно.]
- Cat
- adviser
- Сообщения: 203
- Зарегистрирован: 22 июл 2010, 09:53
- Версия LabVIEW: 12
- Контактная информация:
Re: Преобразование Барроуза — Уилера или как пережать траффи
Спасибо! Я правда в С#, не очень силен больше радиоинженер,чем программист))готовые библиотеки научился подключать и использовать,а вот с С#... попробую разобраться.
Чеширский Кот - совсем не тот, что чешет языком.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Преобразование Барроуза — Уилера или как пережать траффи
Cat, вам не нужно писать библиотеки, нужно просто перевести код C# в код , тем более что его не так уж много. Используйте .NET узлы в палитре Connectivity. Посмотрите также тему http://www.labviewportal.org/viewtopic. ... 179#p65152
Если вообще с .NET ни разу не работали, то смотрите статью http://www.notatamelion.com/2015/07/02/ ... n-labview/
Если вообще с .NET ни разу не работали, то смотрите статью http://www.notatamelion.com/2015/07/02/ ... n-labview/
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Преобразование Барроуза — Уилера или как пережать траффи
Сейчас вот подумалось, что не проще ли взять готовые ZLIB Inflate / Deflate из инструментария OpenG ZIP Tools и юзать их, всё равно ведь данные будете передавать в виде строки или массива байт?..
- Вложения
-
- 2015-08-08_22-19-01.jpg (24.16 КБ) 10385 просмотров
- Cat
- adviser
- Сообщения: 203
- Зарегистрирован: 22 июл 2010, 09:53
- Версия LabVIEW: 12
- Контактная информация:
Re: Преобразование Барроуза — Уилера или как пережать траффи
Проще и в данный момент, наверно это будет оптимальное решение! За ссылки отдельное спасибо!dadreamer писал(а):Сейчас вот подумалось, что не проще ли взять готовые ZLIB Inflate / Deflate из инструментария OpenG ZIP Tools и юзать их, всё равно ведь данные будете передавать в виде строки или массива байт?..
Чеширский Кот - совсем не тот, что чешет языком.
- Cat
- adviser
- Сообщения: 203
- Зарегистрирован: 22 июл 2010, 09:53
- Версия LabVIEW: 12
- Контактная информация:
Re: Преобразование Барроуза — Уилера или как пережать траффи
У меня на рабочей машине не стоит, OpenG Toolkit, dadreamer не могли бы Вы скинуть ZLIB Inflate / Deflate VI?
Чеширский Кот - совсем не тот, что чешет языком.
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Преобразование Барроуза — Уилера или как пережать траффи
Запускаете VI Package Manager (устанавливается по умолчанию с LabVIEW, если нет, можно скачать вручную), выбираете нужную версию LabVIEW, вбиваете в поиск OpenG LabVIEW ZIP Library, устанавливаете.
Мы делили апельсин - много наших полегло...
- Cat
- adviser
- Сообщения: 203
- Зарегистрирован: 22 июл 2010, 09:53
- Версия LabVIEW: 12
- Контактная информация:
Re: Преобразование Барроуза — Уилера или как пережать траффи
Нашел на lava палитру "transport", там как раз есть zip в строку. Спасибо за решение и помощь!
Чеширский Кот - совсем не тот, что чешет языком.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Преобразование Барроуза — Уилера или как пережать траффи
Можно и без интернета установить, но также нужен VIPM. Сначала ставится VIPM, потом через него ставится пакет *.ogp. Все OpenG инструменты лежат здесь. По сабжу вам нужен раздел lib_lvzip и пакет oglib_lvzip-4.0.0-2.ogp (последний на текущий момент). Если есть какие-то зависимости, то VIPM об этом скажет при установке.
Я уже давно выкачал оттуда все свежие пакеты и когда требуется поставить на чистую систему без инета, ставлю сразу весь арсенал OpenG, благо VIPM позволяет ставить множество пакетов за один заход.
Я уже давно выкачал оттуда все свежие пакеты и когда требуется поставить на чистую систему без инета, ставлю сразу весь арсенал OpenG, благо VIPM позволяет ставить множество пакетов за один заход.
- Cat
- adviser
- Сообщения: 203
- Зарегистрирован: 22 июл 2010, 09:53
- Версия LabVIEW: 12
- Контактная информация:
Re: Преобразование Барроуза — Уилера или как пережать траффи
При сборке .ехе, есть ли какие особенности при использовании OpenG? Может нужно пути к библиотекам прописывать?dadreamer писал(а):Можно и без интернета установить, но также нужен VIPM. Сначала ставится VIPM, потом через него ставится пакет *.ogp. Все OpenG инструменты лежат здесь. По сабжу вам нужен раздел lib_lvzip и пакет oglib_lvzip-4.0.0-2.ogp (последний на текущий момент). Если есть какие-то зависимости, то VIPM об этом скажет при установке.
Я уже давно выкачал оттуда все свежие пакеты и когда требуется поставить на чистую систему без инета, ставлю сразу весь арсенал OpenG, благо VIPM позволяет ставить множество пакетов за один заход.
Чеширский Кот - совсем не тот, что чешет языком.
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Преобразование Барроуза — Уилера или как пережать траффи
Если Вы установите библиотеки к , а не будете использовать отдельно, то при сборке exe ничего не нужно делать, т.к. функции с палитры OpenG будут в списках Dependencies Вашего проекта.
Мы делили апельсин - много наших полегло...
- Cat
- adviser
- Сообщения: 203
- Зарегистрирован: 22 июл 2010, 09:53
- Версия LabVIEW: 12
- Контактная информация:
Re: Преобразование Барроуза — Уилера или как пережать траффи
Спасибо, буду пробовать)
Чеширский Кот - совсем не тот, что чешет языком.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение