[Evaporation Project] Система дистрибуции файлов

Для тех, кто хочет сделать мир лучше.

Как передавать файлы от сервера к клиенту

Через простые сокеты
22
39%
Через HTTP/FTP протокол
27
47%
Другое (отписать)
8
14%
 
Всего голосов: 57

Сообщение
Автор
WishMaster1234
Сержант
Сержант
Сообщения: 34
Зарегистрирован: 15.08.2008

#31 Сообщение 14.05.2009, 14:30

ИМХО, передавать лучше с помощью своего созданного протакола, в этом много плюсов, но есть и минусы, главный это хорошая реализация...
Автор темы, я так понял, хочет создать аналог стима?

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#32 Сообщение 14.05.2009, 15:38

Нет, Evaporation Project пока что не имеет задачи заменить стим полностью. Только скачивание защищённого контента игр и быстрое и удобное изменение Steam Crack движка.

WishMaster1234
Сержант
Сержант
Сообщения: 34
Зарегистрирован: 15.08.2008

#33 Сообщение 15.05.2009, 01:09

Немного подумал и придумал вот что....
Положим нужно качать гкф файлы...
Придумал такую систему, каждый файл делиться на части определенного размера, по 256-512 кб не больше. Далее считается каждого файла хеш мд5, он составит 128 бит, т.е. 16 байт, итак один гкф весит не более 2х гигов, если сделать часть по 400 кб(в среднем) то полный набор хешей для всех частей составит 80-150 кб, что согласитесь не так много. Соответственно обновление осушествляется путем скачивания измененных кусочков файла. Узнать об изменении файлов можно путем получения общего хеша файла.
Могут быть проблемы.
1. Ресурсоемкость подсчета всех хешей, на клиентской машине.
2. Может возникнуть проблема что изменения будут в каждок кусочке, и тогда придется качать файл целиком.
3.Проблема передача самого кусочка.Его впринчипе можно передать через сокеты, в несколько потоков, в общем это проблема решаема.
Вот как то так.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#34 Сообщение 15.05.2009, 07:58

Как вариант, хотя и недостатки имеются...

А вообще я думаю, нужно изменить систему вообще вкорне. Ведь GCF имеют заголовки с хешами всех файлов, так? Можно сделать HTTP сервер, на котором хранить все файлы GCF в распакованном виде и с делать специальный интерфейс для сверения хешей файло на клиенте и на сервере. Для обновления кеша придётся качать уже не сам гцф или файл к нему, а его содержимое (тоесть файлы в нём). Потом как-то их совать в GCF на клиенте, но если сам не смогу это реализовать, я думаю кто-нибудь поделится кодом ;)

Аватара пользователя
Pr0Ger
Модератор
Модератор
Сообщения: 1829
Зарегистрирован: 16.01.2009
Благодарил (а): 17 раз
Поблагодарили: 214 раз
Контактная информация:

#35 Сообщение 15.05.2009, 13:30

MOZGIII, ты почетный баянист
и не пытайся мои идеи выдавать за свои, я это давно предлагал, только я предложил формировать на клиенте archive файл, а на сервере апдейт, но делать это не тулбоксом, а php скриптом(надо что-бы можно было можно было php_time_limit 0 поскольку апдейт долго делать)
забить в GCF тоже несложно, только для первоначальной скачки нужно быдет MiniGCF(что это такое думаю все знают :crazy: ) там у меня даже немного технической реализации было, только сейчас пост найти не могу что :dash:

WishMaster1234
Сержант
Сержант
Сообщения: 34
Зарегистрирован: 15.08.2008

#36 Сообщение 15.05.2009, 14:48

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

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#37 Сообщение 15.05.2009, 16:30

Pr0Ger
Я об этом знаю (о твоём посте). Только зачем извращаться с апдейтами? Это много кода на PHP, а ведь можно сделать только простой HTTP с распаками GCF. Делать скачку как кфтулбокс, по одному файлу. А насчёт боянизма - это всё уже придумали в Valve. :)

Добавлено спустя 1 минуту 24 секунды:
WishMaster1234
Довай, помощь нужна. Тоесть пригодиться. Ты что умееш?

Аватара пользователя
Pr0Ger
Модератор
Модератор
Сообщения: 1829
Зарегистрирован: 16.01.2009
Благодарил (а): 17 раз
Поблагодарили: 214 раз
Контактная информация:

#38 Сообщение 15.05.2009, 16:35

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

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#39 Сообщение 15.05.2009, 16:42

Pr0Ger
:)

WishMaster1234
Сержант
Сержант
Сообщения: 34
Зарегистрирован: 15.08.2008

#40 Сообщение 15.05.2009, 18:31

MOZGIII писал(а):WishMaster1234
Довай, помощь нужна. Тоесть пригодиться. Ты что умееш?
Могу копать, могу не копать :lol: :D
А вообще я так очень даже не плохой программист...

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#41 Сообщение 15.05.2009, 19:16

На каких языках...?

Аватара пользователя
Pr0Ger
Модератор
Модератор
Сообщения: 1829
Зарегистрирован: 16.01.2009
Благодарил (а): 17 раз
Поблагодарили: 214 раз
Контактная информация:

#42 Сообщение 15.05.2009, 20:45

он незнай, а я могу Delphi, PHP, немного C++, если что обрашайся :)

WishMaster1234
Сержант
Сержант
Сообщения: 34
Зарегистрирован: 15.08.2008

#43 Сообщение 15.05.2009, 22:02

Да я много языков знаю, основный это С/С++ и С#, знаю PHP, Делфи тоже оцень хорошо знаю...VB учил...

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#44 Сообщение 15.05.2009, 22:21

Оочень хорошо! Мне нужна помощь теоритического больше характера. Я буду писать протокол, в частности, и программу связи на дельфи. Если у вас есть время, поищите код для дельфей по запихиванию файлов в гцф. Я понимаю, что его то и искать собственно негде т. к. он весь тут, либо в других местах но уже на сях. Хотя, это больше не к вам двоим, а к тем, кто с этим вплотную работает... А вообще, тут помощь нужна на самом то деле не в написании кода, хотя и в нём тоже, а также и в необходимости понимания работы протоколов стима. Поэтому, если у кого есть опыт в создании дампов трафика сетевых приложений, они бы очень пригодились. Кстати я до сих пор работал только с HTTP дампами - на него итак есть докуменнтация. И ещё - возможно я не в тему использую термин дамп, но я не знаю просто как ещё сказать :)
Кароче надо узнать как подменить сервера стима. Это поможет не только мне, но и ещё кое-кому ;)

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2340 раз
Поблагодарили: 590 раз

#45 Сообщение 16.05.2009, 04:28

MOZGIII
обратись к andreil он много чего на дельфи портировал..
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

...воздержитесь от этого, изучите вот это.
Лучшая статья о моих взглядах. Настоятельно рекомендую.

Ответить