Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> побайтовый подсчет трафика при скачивании 
:(
    Опции темы
Mal Hack
Дата 26.7.2007, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 8
Всего: 261



Отдать фал разом будет во многораз быстрее чем отдавать его по частям...
И не спорь... Это - факт.

Это сообщение отредактировал(а) Mal Hack - 26.7.2007, 18:23
PM ICQ   Вверх
Diesel Draft
Дата 26.7.2007, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

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



Я не спорю, ну просто ты ставишь задачу в тупик. Как по твоему можно сейчас это решить?Да можно поискать утилиту под винду. Кстати это твой сервер или просто виртуальный хостинг


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
Mal Hack
Дата 26.7.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 8
Всего: 261



Фишка в том, что нельзя рассматривать вопрос без конкретизации задачи. Естественно, задачи 100% для всех не будет, тем не менее, рассматривать задачу на виндовом хостинге не целесобразно. Это равносильно тому, что ты хочешь купить себе машину, денег в лучшем случае на поддержанный жигуль, а изучаешь каталоги БМВ... Смысл такой же, только мотивация другая.

Решаем способом использования линуксовой утилиты. Уж какие они есть - это я не знаток. netstat вроде бы дает эти данные.

Чей сервер? Какой хостинг?
PM ICQ   Вверх
chiffa
Дата 26.7.2007, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Сорри, что ввел в заблуждение, нуна было сразу оговорить эти моменты. И так. Имеем выделеный сервак, на борту ФриБСД, конфигурация: AMD Sempron 3200+, РАМа 1024. Как вариант мона установить и доп софт, но по netstat к сожалению ничего в сети не нашел есть аналоги под Винду и не более.


Если же отдавать файл частями? Каким образом? Просто загнать в цикл и считывать через fgetc последовательно байты?
PM MAIL   Вверх
Mal Hack
Дата 26.7.2007, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 8
Всего: 261



Вариант - пишем демона на Си, который "слушает"80 порт и скидывает инфу в файло. Все. Таким образом знает. Главное правильно организовать структуру этого самого файло, чтобы можно было потом скриптом понять что и как.
Я бы еще копнул в сторону Apache, сдается мне, что там что-то должно нам помочь.

А вообще, было бы интересно услышать полостью задачу.
PM ICQ   Вверх
chiffa
Дата 26.7.2007, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хм... жаль что Си незнаю на таком уровне smile А здача в следующим, что пользователю выделяется приблизительно 8 гиг трафика на месяц, все что свыше - платно. если фиксить перед началом скачивания весь файл как будто он скачен, то тогда в случаи обрыва на трафик попадает пользователь, если фиксить после скачивания, то на трафик попадаю я smile
PM MAIL   Вверх
Diesel Draft
Дата 26.7.2007, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

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



Поставь ФТП сервер. Есть один, от правда не помню как называется, но он умеет работать з Мускулом и кажется даже з РНР. Может в нем есть что то для этого. Попробуй в цикле, но большими кусками


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
jinn
Дата 27.7.2007, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



хм насчет Си данная фича присутствует в 3proxy (www.security.nnov.ru) если есть желание можно покапаться в исходниках или заюзать его)

Mal Hack читай первый пост там на писано на ПХП я предполагаю что без сторонних утилит.
А нагрузка будет не слишком большой никто не говорит считать каждый байт если будет превышение из 8 гиг на 50 мег это ничего! т.е можно отдавать кусками по 50-100 мег. А подумай саму идею писать на пхп такую утилиту я смысла не вижу. А ты говоришь про скорость обработки на конкретный вопрос конкретный ответ:цикл с большими кусками под 50-100 мег!

PM MAIL   Вверх
chiffa
Дата 27.7.2007, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



тоесть  я циклом стичываю в переменную побайтово. Как накопилось одтал через заголовок. опять, считал - отдал и т.д. так? Вопрос: оно не будет виснуть тот период пока будет "накапливаться"  в переменной эти самые 50-100 мб?
PM MAIL   Вверх
Diesel Draft
Дата 27.7.2007, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

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



Зачем в переменную, можно просто отдавать. 

Код

  set_time_limit(0);
  
  $f = fopen($fileName, 'r');
  while(feof($f)){
    print fread($f, $length);
    if(!connection_aborted()){
        $counter += $length;
    }
  }


Вот набросал на коленях

П.С. только что исправил ошибку

Это сообщение отредактировал(а) Diesel Draft - 27.7.2007, 11:23


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
jinn
Дата 27.7.2007, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



код который привел  Diesel Draft будет работать довольно быстро)только там нужно будет вставить проверку на лимит трафика)

Это сообщение отредактировал(а) jinn - 27.7.2007, 11:24
PM MAIL   Вверх
Diesel Draft
Дата 27.7.2007, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

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



А, я ошибку нашли smile у Меня там когда коннект обрывается то оно начнет считать. Должно быть на оборот smile


ну думаю пример ясен


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
jinn
Дата 27.7.2007, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



там должно быть примерно так:
Код

 set_time_limit(0);    
    
  $f = fopen($fileName, 'r');    
  while(feof($f))
  {
    if($counter<$max)
    {
       print fread($f, $length);
       $counter += $length;
       if(!connection_aborted())
       {
        //записываем скоольк передано
       }
    }
    else
    {
      fclose($f);
    }
  }


Это сообщение отредактировал(а) jinn - 27.7.2007, 11:33
PM MAIL   Вверх
Diesel Draft
Дата 27.7.2007, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

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



jinn, тоже на коленях писал ?  smile 


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
chiffa
Дата 27.7.2007, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а как лучьше отдавать? так?

Код

header("Content-type: application/octet-stream");
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=". $name_out);
header("Content-Length: " . FileSize($neww)); 

ReadFile($neww);


PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




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


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

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