Seaward.ru

Здравствуйте, гость ( Вход | Регистрация )

> Программисты на Дельфи или С++, Нужна помощь: разработать оболочку типа веб-браузера, но с перехватом
ALexusB
сообщение Jun 25 2009, 12:32
Сообщение #1


Разработчик игры К:ВЛ
*******

Seaward TeamЖелезный Профессор
Группа: Admin
Сообщений: 15,045
Регистрация: 2-November 04
Пользователь №: 3



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

Сам браузер не имеет кнопок управления, только запустить и закрыть, ну может еще на весь экран или окно. Остальное все прописывается в коде. Браузер должен уметь показывать Флаш и перехват ссылок именно от флаша.

Кто в теме и хочет помочь, более детальное ТЗ по ЛС дам.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
3 страниц V < 1 2 3 >  
Reply to this topicStart new topic
Ответов(20 - 39)
ALexusB
сообщение Aug 7 2009, 09:21
Сообщение #21


Разработчик игры К:ВЛ
*******

Seaward TeamЖелезный Профессор
Группа: Admin
Сообщений: 15,045
Регистрация: 2-November 04
Пользователь №: 3



Грузится обычно, как любой файл, идет запрос по ссылке пути.

Вся эта буча и овзникла, чтоб выяснить, что можно, что нет. Очевидно, крайне хотелось иметь клиента, играющео браузерные флашки, чтоб "не делать" клиента вообще.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
navy
сообщение Aug 7 2009, 10:07
Сообщение #22


Hagane no Renkinjutsushi
*******

Seaward TeamВетеран ФорумаЗаслуженный Корсар

Группа: Seaward.Ru Team
Сообщений: 5,945
Регистрация: 15-March 05
Из: Волгоград
Пользователь №: 578



Кстати хз в чем прикол, но у меня флеш кэширует сам все, видимо это кэш IE как-то используется. Т.е. загрузка идет молниеносно. второй флешки.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ALexusB
сообщение Aug 7 2009, 10:17
Сообщение #23


Разработчик игры К:ВЛ
*******

Seaward TeamЖелезный Профессор
Группа: Admin
Сообщений: 15,045
Регистрация: 2-November 04
Пользователь №: 3



ИЕ кэширует и Опера тоже - все гут. Но это может быть настроено ко стиранию. Это мешает (на тестах кубиках обжегся), когда обновляется на серве файл.
Потому и была идея клиента игры, как описал.
Тогда его можно давать не пустым, а спредустановленым кэшем в .рар, чтоб он не лазил вообще в инет. А кэш по мере устаревания сам обновится.
Идея возникла, когда на ЖПРСе посидел, имея клиент можно и с него играть.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
navy
сообщение Aug 7 2009, 10:21
Сообщение #24


Hagane no Renkinjutsushi
*******

Seaward TeamВетеран ФорумаЗаслуженный Корсар

Группа: Seaward.Ru Team
Сообщений: 5,945
Регистрация: 15-March 05
Из: Волгоград
Пользователь №: 578



Цитата
ИЕ кэширует и Опера тоже - все гут

Не, я о том, что активХ плагин, который я в своей проге юзаю кэширует закаченое. Видимо он использует кеш IE, т.к. изначально под него и писался.

И все-такие, если действительно делать под свой клиент, то тогда надо делать интеграцию с ним, иначе никак.. Потому как флеш, сам по себе, это платформа.... его события, кроме внешних, не перехватить.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ALexusB
сообщение Aug 7 2009, 10:52
Сообщение #25


Разработчик игры К:ВЛ
*******

Seaward TeamЖелезный Профессор
Группа: Admin
Сообщений: 15,045
Регистрация: 2-November 04
Пользователь №: 3



используемый двиг браузера должен (для этой цели) уметь перехватывать событие вылеза в Инет (обращения куда-то). Если он это не умеет, то далее можно не копать - не реализуемо.
Флашем управлять нечего - нужно перехватывать его обращения в инет и подменять ответ на эти обращения. То есть, флаш вообще не должен знать, где он.

То, что это можно сдлеать в принципе - факт - пишут же свои бразузеры или файрволы, которые знают, кто куда лезет и могут этим управлять.
Другое дело, можно ли это сделать БЫСТРО и просто на С++ или Дельфи. Если в них нельзя сделать свой браузер, то и говорить не о чем.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
navy
сообщение Aug 7 2009, 12:11
Сообщение #26


Hagane no Renkinjutsushi
*******

Seaward TeamВетеран ФорумаЗаслуженный Корсар

Группа: Seaward.Ru Team
Сообщений: 5,945
Регистрация: 15-March 05
Из: Волгоград
Пользователь №: 578



Цитата
То, что это можно сдлеать в принципе - факт - пишут же свои бразузеры

Это факт то да, но тут суть какая? Это или простые браузеры, которые флеш не поддерживают. Или серьезные проекты с большим штатом (Фокс, Опера, Хром) Там кстати, используется ДРУГОЙ! плагин.. можно конечно его попробовать использовать, но тут большой косяк получиться может. Т.к. браузер рендерит страничку встраивая в него флеш, и как он это делает достаточно туманно. Т.е. плагин может работать как контрол, а может просто как DLL которая декодит то, что надо.

Этот АктивХ контрол, как мне кажется, использует настройки IE для выхода в инет. Своих настроек для подключения у него нет. Перехватить обращение в инет нельзя (точнее можно, но заблокировать его нельзя, по крайней мере мне этот способ не известен). Фаервол работает по другому принципу, и писать его для такой задачи тоже не вариант.

Поэтому с моей точки зрения, нужно разделять задачи для флеша и своего клиента. Клиент качает, флеш показывает.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Killbrum
сообщение Nov 13 2009, 20:48
Сообщение #27


новичок
*


Группа: форумчанин (*)
Сообщений: 5
Регистрация: 13-November 09
Пользователь №: 21,659



Кстати ребята если нужна будет помощь то стучитесь =) . В программинге конечно не так давно... но учусь и стараюсь =) (2 года занимаюсь программингом на С++ и прочих).

Если скажем так... на билдере навять свой мини браузер - дело одного вечера. Но это уже готовый браузер. То есть оболочка уже сделана борландовцами... но перехват пакетов (собственно в пакетах ссылки) там не сделаешь. Надо делать что то типа сниффера и перехватывать тогда всё. Как по мне глупо. Намного лучше будет скажем сделать так:
Если требуется соеденение с сервером, или скажем с той же инет страничкой ( просто не до конца ясно к чему будет ити конект) то можно просто сделать всю графику чисто в клиенте (т.н. то что Алексус просит написать) и просто скажем через сокет отправлять данные на сайт и так же принимать и обрабатывать.

Ну а если надо просто получать какие то данные из сервера так тут проще некуда ))))) клиент-сервер сокеты и вперед из песней)))

"Перехватить обращение в инет нельзя (точнее можно, но заблокировать его нельзя, по крайней мере мне этот способ не известен). Фаервол работает по другому принципу, и писать его для такой задачи тоже не вариант."

Фаер как драйвер работает. NDIS драйвер.
Перехватывать пакеты тоже не сложно так что ошибаешся =). Сам делал. Отфильтровать тоже можно - проксю сделать и всё.

Пардон ребята но реально не сильно просто вежаю в суть =)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ALexusB
сообщение Nov 14 2009, 14:56
Сообщение #28


Разработчик игры К:ВЛ
*******

Seaward TeamЖелезный Профессор
Группа: Admin
Сообщений: 15,045
Регистрация: 2-November 04
Пользователь №: 3



Да уже ясно, что это на борланде не сделать и это не просто. Но можно точно, браузеры же пишут свои с нуля, а там точно есть управление кэшем и перехват с подменой на файл из заначки.

Приоритет у задачи низкий, тк и без этого все будет работать, просто жрать трафика в разы больше.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Killbrum
сообщение Nov 14 2009, 17:46
Сообщение #29


новичок
*


Группа: форумчанин (*)
Сообщений: 5
Регистрация: 13-November 09
Пользователь №: 21,659



))))))))) улыбнуло))))
Борланд это ИДЕ )) точнее Билдер, но не важно. А реально ты можешь и на Dev C++ это сделать. Просто у Билдера нету готовых таких контролов. Да и зачем они? оО

Просто Вижуал более заточен под Винь, но есть очень мало вещей где нельзя сделать на Билдере то что можно на Вижуале. 99% решений абсолютно нормально можно сделать там и там. Просто как правило у Билдера хуже компилятор и потому выбирают Вижуал. Но С++ он и в Африке С++ =)

Браузер пишется очень просто... сокс 4 скажем, читаем мануал по HTTP протоколу. Изучаем как идет передача, то есть скажем так... "мини-язык" этого протокола. Делаем на соках браузер. Тут уже перехвачивать ничего не надо т.к. есть прямой доступ к данным.

Если вопрос в траффике то можно передавать сжатые файлы и их распаковывать (само собой не в ручную).

Просто как уже и говорил если надо перекинуть файлы с сервера на клиент (авто апдейтер) то я бы делал на чистых сокетах + сделал скажем что на сервере висят архивированые данные, на клиенте они когда докачиваются то распаковываются и бросаются в нужное место (само собой сильная економия траффика).

Если скажем надо передать какие то новости, текст (просто постоянно пытаюсь понять что конкретно надо и связать это с игрой, а т.к. очень много времени занимался лаунчерами то все мысли почему то о чем то таком...) то можно просто сделать ту же прогу, графику сделать скажем в том же Билдере (благо и контролов много есть, я про альфа контролы, да и сделать GUI там куда проще) а уже от туда с помощю тех же сокетов посылать HTTP запросы.

---------------------------------------------------------------------------------
Вчитываясь в последние слова
"а там точно есть управление кэшем и перехват с подменой на файл из заначки."
Понял что это всё таки касается авто апдейта. Как понимаю это для обновления файлов. То есть если скажем уже на харде имеется патч то чтобы не перекачивать его ещё раз а просто уже сразу инсталировать. В таком случае (если конечно я понял о чем речь) можно сделать так:
1) сделать проверку всех файлов
2) взять скажем md5 каждого файла и отправлять на сервер
3) получить от сервера результат или файл нуждается в апдейте или нет и получить его теперешний md5
4) проверяем скажем папочку Temp на наличие там файла с нужным md5
5) если нету орем серверу чтобы отослал файлик
6) приняли файлик, распаковали, удалили старый - поставили новый
7) так проверяем все файлы. Когда всё дошло до конца можно уже запускать игру и играть. Таким же мотодом можно сразу оповещать игроков о том что доступен новый апдейт.

Надеюсь чем то помог =)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
delfin_
сообщение Nov 14 2009, 19:55
Сообщение #30


Защитнег Бакланаф
*******

Ветеран ФорумаЗаслуженный КорсарЗнаток Игр Сиварда
Наставник Корсаров
Группа: форумчанин
Сообщений: 5,152
Регистрация: 5-December 04
Пользователь №: 174



Цитата(Killbrum @ Nov 14 2009, 16:46) *

Понял что это всё таки касается авто апдейта. Как понимаю это для обновления файлов.

Алекс делает браузерную флеш игру. См. примеры, и ему нужен "умный" браузер который мог бы контролировать те функции которые ему (Алексу) нужны (о них см. выше). Как оказалось, таких нету. Вот он и хочет написать свой браузер, который будет использоваться только для игры, т.е. нечно вроде своей апликации.


Цитата(Killbrum @ Nov 14 2009, 19:03) *

Кстати звиняюсь за оффтоп.

Было такое дело. 6.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Killbrum
сообщение Nov 14 2009, 20:03
Сообщение #31


новичок
*


Группа: форумчанин (*)
Сообщений: 5
Регистрация: 13-November 09
Пользователь №: 21,659



Ясно =) чесно говоря проще флеш игру сделать на С++ чем написать браузер который будет реагировать как надо =). Просто сделать браузер из готового контрола дело простое. Но сделать браузер с нуля... я бы не стал.

Кстати звиняюсь за оффтоп.
delfin_ Вас ничего не связывает с игрой Mu Online ? o_O. И Вы случайно небыли в команде [BoR] или Devil Network? Просто очень знакомый ник к тому же если помню то тот парень тоже из Кишинёва был.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ALexusB
сообщение Nov 19 2009, 01:39
Сообщение #32


Разработчик игры К:ВЛ
*******

Seaward TeamЖелезный Профессор
Группа: Admin
Сообщений: 15,045
Регистрация: 2-November 04
Пользователь №: 3



Цитата
чесно говоря проще флеш игру сделать на С++

флеш игру проще сделать на флеш smile.gif
А то звучит смешно.
Я уже понял, так просто трафик не минимизировать, значит будет без клиентской части.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
navy
сообщение Nov 19 2009, 09:01
Сообщение #33


Hagane no Renkinjutsushi
*******

Seaward TeamВетеран ФорумаЗаслуженный Корсар

Группа: Seaward.Ru Team
Сообщений: 5,945
Регистрация: 15-March 05
Из: Волгоград
Пользователь №: 578



Цитата
Браузер пишется очень просто... сокс 4 скажем, читаем мануал по HTTP протоколу. Изучаем как идет передача, то есть скажем так... "мини-язык"

флеш ты чем рендерить будешь на странице? smile.gif а перехватывать его внутренние запросы в инет?
Цитата
Я уже понял, так просто трафик не минимизировать, значит будет без клиентской части.

Просто не получится, это точно. А сложно делать, не стоит имхо, т.к. увеличит количество критических точек.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Killbrum
сообщение Nov 19 2009, 17:22
Сообщение #34


новичок
*


Группа: форумчанин (*)
Сообщений: 5
Регистрация: 13-November 09
Пользователь №: 21,659



Я про простенький браузер))))
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Fry
сообщение Jun 16 2010, 09:06
Сообщение #35


новичок
*


Группа: форумчанин (*)
Сообщений: 8
Регистрация: 16-June 10
Пользователь №: 22,919



Ещё нужна помощь? или забили?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
navy
сообщение Jun 16 2010, 11:59
Сообщение #36


Hagane no Renkinjutsushi
*******

Seaward TeamВетеран ФорумаЗаслуженный Корсар

Группа: Seaward.Ru Team
Сообщений: 5,945
Регистрация: 15-March 05
Из: Волгоград
Пользователь №: 578



Есть конкретные предложения? Напиши Алексу в личку.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Fry
сообщение Jun 16 2010, 12:22
Сообщение #37


новичок
*


Группа: форумчанин (*)
Сообщений: 8
Регистрация: 16-June 10
Пользователь №: 22,919



Давно бы написал , но запрещено sleep.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Tymofei
сообщение Jun 16 2010, 12:22
Сообщение #38


Приватир
*******

Заслуженный КорсарЗаслуженный ХудожникЗнаток Игр Сиварда
Создатель Модов к ГПК
Группа: форумчанин
Сообщений: 3,759
Регистрация: 20-November 07
Из: Москва
Пользователь №: 12,641



Кто мешает найти его мыло или аську?
Или пойти в Таверну и "набить" десяток постов smile.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Fry
сообщение Jun 16 2010, 12:25
Сообщение #39


новичок
*


Группа: форумчанин (*)
Сообщений: 8
Регистрация: 16-June 10
Пользователь №: 22,919



Зачем мне это? Не проще спросить в конкретной теме.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ALexusB
сообщение Jun 16 2010, 12:31
Сообщение #40


Разработчик игры К:ВЛ
*******

Seaward TeamЖелезный Профессор
Группа: Admin
Сообщений: 15,045
Регистрация: 2-November 04
Пользователь №: 3



Цитата(Fry @ Jun 16 2010, 10:06) *

Ещё нужна помощь? или забили?

а знаешь техническую возможность (простую), как это сделать?
Дай идею
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

3 страниц V < 1 2 3 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 22nd November 2019 - 13:07
Яндекс цитирования Rambler's Top100
Rambler's Top100