Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ускоритель/уменьшитель интернета, Начинаю OpenSource проект,присоединяйтес 
:(
    Опции темы
ivashkanet
Дата 29.4.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Идею мне подала вот эта тема и эта статья.

Основная идея:
Уменьшение объема трафика за счет сжатия (архивирования) информации.

Принцип работы:
Связка WinService+WebService

Браузер запрашивает URL, WinService его перехватывает и отправляет WebService-у. 
Он получает страничку, сжимает содержимое, отдает WinService-у.
Тот его распаковывает и передает браузеру.
Проще идеи не придумаешь  smile 

Возникающие вопросы:
1) Естественно, как это все реализовать. smile 
Не сильно предстваляю КАК, но что реально это 100%.

2) На первое время WebService можно разместить на бесплатном хосте, поддерживающем ASP.Net.
Дальше, при увеличении количества клиентов сервиса, можно зарегистрировать еще несколько дочерних сервисов, на этом или другом хосте. 
Если, вдруг, чего не бывает, проект разрастется и бесплатных хостингов нам не хватит можно взять платный.
Вопрос: "Где взять деньги на платный хостинг?". 
Предлагаю стелать приложение, настраивающее наш Win-сервис и продавать его за копейки (например 1$ лицензия). А для тех кто не хочет платить сделать настройки с помощью ini-файла.

3) Нужно выбрать бесплатный архиватор, который бы работал быстро и более-менее качественно. (самим писать, ИМХО, смысла нет. Я например, не знаю ни одного алгоритма сжатия, кроме дерева Кого-то-там) 
В настройках (Win-сервис) архиватора  можно выбирать степень сжатия (балланс: скорость/трафик). 
А то вместо ускорителя интернета можно получить замедлитель  smile 

4) ... 

n) По мере разработки вопросов набереться еще много  smile 

Всех, кого моя идея заинтересовала, милости прошу в проект. 
PM MAIL WWW ICQ   Вверх
Softaz
Дата 30.4.2006, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



У некоторых провайдеров (имхо, большинства) есть поддержка аппаратного сжатия трафика, главное - чтобы модем клиента это поддреживал.
Например, на V.92 скорость ~20МБ/час. С сжатием она возрастает примерно до 40МБ (текст).

Предлагаемая тобой программа может сделать и больше, если сжатие будет больше чем в 2 раза.

Добавлено @ 10:46 
А если предполагается использование HTTP протокола  версии 1.0 и выше, то можно информацию компрессовать в gzip.
Далее этот поток натравлять на браузер, который сам обязан ее раскомпрессовать. 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
ivashkanet
Дата 30.4.2006, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Вчера сделал свой первый Web-сервис, аля Hello World. Подключился к нему из win-приложения. Все заняло, с обучением, 40 минут smile  Обожаю .Net 
Сегодня буду рефракторить класс WebBrowser на предмет того как получить код страницы и сохранить ее на диске.

P.S. 
Цитата(Softaz @  30.4.2006,  10:44 Найти цитируемый пост)
У некоторых провайдеров

У моего нет  smile У меня входящие сжимаются не более 3-5% smile 
Цитата(Softaz @  30.4.2006,  10:44 Найти цитируемый пост)
Предлагаемая тобой программа может сделать и больше, если сжатие будет больше чем в 2 раза.

Вот это и прильщает в ней smile 
Цитата(Softaz @  30.4.2006,  10:44 Найти цитируемый пост)
А если предполагается использование HTTP протокола  версии 1.0 и выше, то можно информацию компрессовать в gzip. 

Протоколов вообще никаких (напрямую, конечно) использовать не надо, все это должен делать за нас Net  smile 
Цитата(Softaz @  30.4.2006,  10:44 Найти цитируемый пост)
Далее этот поток натравлять на браузер, который сам обязан ее раскомпрессовать. 

Может и такая будет реализация, я в этом не разбираюсь, пока  smile . 
PM MAIL WWW ICQ   Вверх
Exception
Дата 30.4.2006, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Цитата(ivashkanet @  30.4.2006,  12:40 Найти цитируемый пост)
WebBrowser 


Он тут причём?

А идея интересная. 
PM   Вверх
Softaz
Дата 1.5.2006, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



Цитата(ivashkanet @  30.4.2006,  11:40 Найти цитируемый пост)
Сегодня буду рефракторить класс WebBrowser на предмет того как получить код страницы и сохранить ее на диске.


Создай (== кинь на форму компонент) WebBrowser и по DocumentCompleted

Код

            MessageBox.Show(webBrowser1.DocumentTitle.ToString()); //Название страницы
            MessageBox.Show(webBrowser1.Document.Links.Count.ToString()+" ссылок." ); //кол-во сылок
            MessageBox.Show(webBrowser1.DocumentText.ToString()); //текст документа (html)

Теперь нам надо узнать все ссылки
Код

            foreach (HtmlElement hrefElement in webBrowser1.Document.Links)
            {
                  /*
                   * Выводим сообщение, содержащее параметр href ссылки,
                   * заменяя в ней текст file:/// (если есть) -- это относится к
                   * относительным ссылкам.
                   */
                  MessageBox.Show(hrefElement.GetAttribute("href").Replace("file:///", ""));
            }


Добавлено @ 01:12 
Главная проблема -- перехват соединения (если ты хочешь, чтобы действие программы распространялось на любое приложение).
Конечно, если в качестве браузера будет использовать Ole-объект ослика (WebBrowser), то проблема быстро решается.

Мне самому интересно, как перехватывать соединение. Хочу сделать баннеро-порно-трояно-резку. Уже есть база на 118 тысяч "черных" хостов.
А вот как перехватить соединение и заблокировать в простейшем случае в .NET я не знаю smile 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
Exception
Дата 1.5.2006, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Погодите. Никакой завязки на WebBrowser быть НЕ ДОЛЖНО! 
PM   Вверх
ivashkanet
Дата 1.5.2006, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



План разработок:
1) web-сервис;
2) win-сервис.
Почему: ведь web-сервис, ИМХО, проще и к нему можно подключиться и без win-сервиса.
Да и работы там чуть-чуть. Вот только найти бы класс отвечающий на нижеприведенный вопрос.
Второй пункт, скорее всего, нужно будет решать по принципу прокси-сервера (хотя могу ошибаться)

Вопрос:Может кто знает какой класс может получить доступ к тексту удаленной страницы smile 

P.S.
Цитата(Exception @  1.5.2006,  09:47 Найти цитируемый пост)
Погодите. Никакой завязки на WebBrowser быть НЕ ДОЛЖНО

А ее и не будет smile  Это как бы старт.
Ведь я, пока, мало что в этом понимаю, а браузер должен был подсказать путь решения.
Мог но не подсказал. Обрывается, в рефлекторе, на
Код

[DispId(500)]
void Navigate2([In] ref object URL, [In] ref object flags, [In] ref object targetFrameName, [In] ref object postData, [In] ref object headers);

 smile 

 
PM MAIL WWW ICQ   Вверх
Exception
Дата 1.5.2006, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Гляди в сторону System.Web.HttpRequest.. Это по памяти, точно не помню. 
PM   Вверх
VectorMan
Дата 2.5.2006, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antihero
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 9.4.2006

Репутация: нет
Всего: 4



Цитата(Softaz @ 1.5.2006,  01:07)

Мне самому интересно, как перехватывать соединение. Хочу сделать баннеро-порно-трояно-резку. Уже есть база на 118 тысяч "черных" хостов.
А вот как перехватить соединение и заблокировать в простейшем случае в .NET я не знаю smile

обычно всякие "резалки" трафика работают либо как локальный http-proxy, либо через API ядра для фильтрации пакетов 
PM   Вверх
ivashkanet
Дата 2.5.2006, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(VectorMan @  2.5.2006,  06:05 Найти цитируемый пост)
через API ядра для фильтрации пакетов 

Нее..., такое я мутить не буду  smile 
Цитата(VectorMan @  2.5.2006,  06:05 Найти цитируемый пост)
как локальный http-proxy

А вот такое, думаю, прокатит  smile 

P.S. VectorMan, может подкинешь инфу smile  
PM MAIL WWW ICQ   Вверх
VectorMan
Дата 2.5.2006, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antihero
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 9.4.2006

Репутация: нет
Всего: 4



Цитата(ivashkanet @ 2.5.2006,  09:58)
VectorMan, может подкинешь инфу smile

примеров кода у меня нет, так что ищи сам :-)

вот rfc по http протоколу - точно лишним не будет 
PM   Вверх
Softaz
Дата 2.5.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



Цитата(VectorMan @  2.5.2006,  06:05 Найти цитируемый пост)
либо через API ядра для фильтрации пакетов 

Вот как раз про это.
А можно с NDIS в .NET работать? 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
ivashkanet
Дата 2.5.2006, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(VectorMan @  2.5.2006,  13:35 Найти цитируемый пост)
вот rfc по http протоколу - точно лишним не будет 

VectorMan, не нужно мне знать ни про какой протокол, .Net должен знать его за меня.

P.S. В этом же и прелесть .Net. Ничего не знаю, но программы работают smile 
P.P.S. Я конечно утрирую, но суть та же. 
PM MAIL WWW ICQ   Вверх
VectorMan
Дата 3.5.2006, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antihero
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 9.4.2006

Репутация: нет
Всего: 4



Цитата(Softaz @ 2.5.2006,  17:15)
А можно с NDIS в .NET работать?

не знаю. теоритически любой unmanaged код можно прикрутить :-)

Цитата(ivashkanet @ 2.5.2006,  19:58)
не нужно мне знать ни про какой протокол, .Net должен знать его за меня.

не думаю, что существует стандартный класс реализующий http-proxy, так что варианты либо писать свой, либо искать в инете готовое решение (вот такое например) 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0602 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.