الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

how download accelerators work ?

مغلق
بدأه seco في 23 فبراير 2005 · 11 رد · 745 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

اود ان اسئل عن فكرة عمل برامج التحميل مثل GetRight and FlashGet التى تقوم بعمل الملف على هيئة قطع وتقوم بتنزيل كل واحدة على حدة الى ان ينتهى الملف

ما هى فكرة الدونلود المنفصل فى نفس الملف (بالكود ان امكن)

شكرا لكم :)

Nothing Beat the Human Brain

موبايل 020104927122

#2

الموضوع بسيط (وليس فيه فكرة معينة)

كل ما في الامر انه يجب عليك ان تتعلم كيف تستخدم اوامر المكتبة winsock.h

:) تحياتي/ابوخلود

#3

شكر لردك يا slacker

وجزاك الله خيرا .

Nothing Beat the Human Brain

موبايل 020104927122

#4

أعتقد أن الفكرة تكمن في تقطيع الملف إلى أجزاء ثم العمل على إنزالها معاً عن طريق استخدام Multi Thread من مكتبات الويندوز, هذا مجرد رأيي وليست بالضرورة هي فكرة البرنامج

#5

أخ أبو خلود

هل معنى كلامك أن الأمر يتعلق بـ network programming ؟

وجزاك الله خيرا.

System Engineer

Red Hat Certified Engineer

Red Hat Certificate Number

805010381752078

#6

في اعتقادي له علاقة وثيقة بال network programming ،، ربما الفكرة تقسيم البيانات الى حزم بحجم معين والبدء في تخزينها ..ما رأيكم ؟؟!!!

#7

كما انه بالطبع يجب عليك قراءة بروتوكول ال HTTP وال FTP.

أو علي الاقل قراءة الجزء المخصص لعملية طلب الملفات.

#8

الذي يظهر لي و الله أعلم ،

أن فكرة البرنامج هي تجزئة الملف إلى أكثر من جزء (أربعة أجزاء مثلاً) ثم تنزيل الملف على أنه أكثر من ملف (أربعة ملفات مثلا) .

مثال ملف حجمه 1000 كيلو بايت

يجزء إلى أربعة أجزاء كل جزء 250 كيلو بايت

ثم نحمل الجزء الأول من الملف من بايت رقم 1 إلى البايت رقم 250.000

و نحمل الجزء الثاني من الملف من بايت رقم 250.001 إلى البايت رقم 500.000

وهكذا .... نحمل جميع الأجزاء في وقت واحد .

فلو فرضنا أن سرعة التنزيل للملف الواحد هي 4 كيلوبت ..

فإننا سنكون حصلنا على سرعة تنزيل = 4 * 4 ملفات = 16 كليو بت

وتتم كل هذه العمليات عبر برتوكول HTTP أو FTP

والله أعلم

تم تعديل هذه المشاركة بواسطة MSVS في 26 فبراير 2005 في 11:39

أخي سوف تبكي عليك العيون * * * وتـسـأل عـنك دمـوع المـئـين

فإن جف دمعي سيبكي الغمام * * * يـرصـع قـبرك بــالـياسـمـيـن

أخـي مـا يـأسـنـا ولـن نيـأسـا * * * وما طال في القلب لبث الأسى

ومـا حـل أفــئــدة الــمــــؤمـن * * * سـوى أمـل في الـجنـان رسـى

أخي فانتظر ولتعش في غـد * * * سـيـنـبـثـق الأمـل الـسـرمـد

فـإن مـزقـتـنـا سني الــحـيـاة * * * فإنـا مع الـنصـر فـي مـوعــد

#9

بصراحة يا شباب مش لاقي سبب للحيرة في كلامكم..

الموضوع ابسط من البساطة..

لنقل اننا نريد تنزيل ملف حجمه 1 ميجا ..

سيكون تسلسل الاحداث كالتالي..

يقوم البرنامج بقسمة حجم الملف الكلي (1 ميجا) علي 4.. يكون الناتج .25 لكل جزء.

يقوم البرنامج بارسال 4 طلبات من خلال البروتوكول المستخدم لدي الخادم (سواء اكان HTTP او FTP).

لذلك فلدينا اربع طلبات نوجهها للخادم :

1. طلب البيانات من البايت 0 وحتي البايت رقم 262144. (وذلك هو مقدار الربع ميجا)

2. طلب البيانات من البايت 262145 وحتي البايت 524289.

3. ... وهكذا

يقوم البرنامج بتخزين البيانات التي التي تصله من الخادم في ملف واحد او في اربعة ملفات (هذا امر يرجع للبرمج وتصوره اي اسلوب هو الافضل).

اود توضيح ان عملية طلب بيانات الملف من البايت رقم كذا.. الي البايت رقم كذا تتم من خلال ارسال اوامر معينة الي الخادم. وهذه الاوامر تكون مشروحة في بروتوكول ال HTTP او ال FTP.

كذلك هناك نقطة أخري.. وهي انه هناك بعض الخادمات لا تدعم هذه الميزة. لذلك فتجد احيانا ان البرامج مثل Download Accelerator يخبرك بأنه لا يمكن عمل resume لهذا الملف.

(وهذا يعني ان الخادم لا يدعم اوامر متابعة تنزيل الملفات).

الان.. عندما يرد برنامجنا تكملة تنزيل الملف.. يقوم برنامجنا بقياس عدد ال Bytes التي تم تنزيلها في كل جزء من الاجزاء الاربعة.. ثم يعيد توجيه طلباته للخادم حسب الضرورة ليكمل الاجزاء الناقصة كما هو موضح في الاعلي.

- عمرو

#10
اقتباس
بصراحة يا شباب مش لاقي سبب للحيرة في كلامكم..

أنا لاأجد أي حيرة فالردود كلها واحدة تقريباً كلها نفس الكلام

#11

نعم كما ذكرتم , والتعقيد يزيد في برامج peer to peer بالطبع حيث الجلسات يمكن أن تنتهي فجأة وتدخل فجأة وتحدث دربكة , المهم العملية كل مافيها بريمج client Server يتفاهمان بطريقتهما الخاصة في برامج P2P , وفي وضع برامج التحميل ك GetRight أو accelerator يتم التعل بروتوكول HTTP أو FTP في الغالب بشرط وجود سيرفر يدعم تعدد الجلسات ولاأعرف تفاصيلها . لكنها موثقة وقد توجد في RFC .

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#12
Hazeim كتب:
أنا لاأجد أي حيرة فالردود كلها واحدة تقريباً كلها نفس الكلام

تقبل اسفي اخي العزيز..

اخطأت في استخدامي كلمة حيرة.

انا فقط كنت اقصد ان البعض يستخدم كلمات مثل "اعتقد ان".. "في اعتقادي" .. "يظهر ان" ... مما يوحي بان فكرة البرنامج معقدة او ما شابه. ولكنها في الحقيقة بسيطة جدا. وهذا ما حاولت قوله.

تم تعديل هذه المشاركة بواسطة Chaos في 1 مارس 2005 في 04:55

هذا الموضوع مغلق.

مواضيع مشابهة