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

مشروع جماعي جديد( BitTorrent Client )

مغلق
بدأه bashmohandes في 21 أغسطس 2005 · 33 رد · 4,073 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#26

ماشي يا ميم شرطه مائله محمد :) بانتظارك ان شاء الله أنت وصديقك ويشرفني وجود أخ آخر معنا خريج كلية هندسه برده.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#27

بعد أن عرفنا الBencoding Types دعونا الآن نغوص في الTorrent File و نعرف ما هو شكله تفصيلاً...

أولاً

الTorrent File ككل هو عبارة عن Dictionary و ينقسم كالعادة الى مجموعة من الkeys و الvalues و ترتيبهم في الأغلب ليس مهماً

1- الجزء announce

هو الrow الذي يكون فيه الtracker url

مثال

8:announce40:udp://tracker.bitcomet.net:8080/announce

و هنا نجد أولاً ال key و هو announce و هو bencoded string من 8 حروف ثم الvalue و هي string أيضاً و هو الURL

2- الجزء created by

هو الrow الذي يوجد فيه اسم البرنامج منشئ الملف. و هو بنفس أسلوب الannounce

10:created by13:BitComet/0.59

3- الجزء creation date

هو الrow الذي يكتب فيه تاريخ انشاء الملف و يكون الvalue من نوع bencoded integer

13:creation datei1124998268e

4- الجزء info

و هو أهم جزء في الملف و يحوي المعلومات الأكثر أهمية. و هو عبارة عن Dictionary له شكلان

4,1 - في حالة الملف الواحد

و هي الحالة التي يكون فيها ملف الtorrent مرتبط بملف واحد فقط

و في هذه الحالة يتكون من

4,1,1 الجزء length أي طول الملف و هو Bencoded Integer

4,1,2 الجزء md5sum و هو جزء (إختياري) و يكون فيه 32 حرفا يعبرون عن hexadicimal MD5 check sum للملف

4,1,3 الجزء name و فيه اسم الملف و هو من نوع string

4,1,4 الجزء piece length و هو رقم يعبر عن عدد الbytes في كل جزء من المف (في الأغلب 256) من نوع integer

4,1,5 الجزء pieces و هو string مكون من 20 بايت Sha1 Hash لكل جزء في الملف مكتوبين بالتوالي.

4,2 في حالة أكثر من ملف

و هي الحالة التي يكون فيها ملف الtorrent مرتبط بأكثر من ملف

و في هذه الحالة يتكون الجزء info من التالي

4,2,1 الجزء files و هو عبارة عن List من الDictionaries و كل dictionary داخل الlist تتكون من الآتي

4,2,1,1 الجزء length مثل 4,1,1

4,2,1,2 الجزء md5sum مثل 4,1,2

4,2,1,3 الجزء path و هو عبارة عن list من الstrings كل منها يعبر عن جزء من المسار الخاص بالملف

مثال

هذا المسار dir1/dir2/file.ext

يتحول ليصبح

l4:dir14:dir28:file.exte

4,2,2 الجزء name و هنا يكتب فيه اسم الfolder الذي يحوي جميع هذه الملفات أو مايسمى الTop Most Directory

4,2,3 الجزء piece length و هو مثل 4,1,4

4,2,4 الجزء pieces و هو مثل 4,1,5

و توجد بعض الأجزاء الاختيارية مثل comment و announce list

أرجو قراءة الشرح بتمعن و السؤال فوراً عن أي جزء غير واضح

شكرا

المرجع لمزيد من المعلومــــات

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#28

شكرا يا bashmohandes ,

يوجد معلومات تتعلق بذلك متوفره أيضا في موقعه الرسمي ( تقريبا الرسمي ) ::

http://www.bittorrent.com/protocol.html

الحقيقه أن كل ما أقرأ أكتر عن الـ Bittorrent ... أستغرب أكتر خصوصا لما أشوف Bram Cohen ... شكله يا عيني مجنون خالص :lol: ,, شوفوا كدا ::

http://bitconjurer.org/manglings.html

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#29

لقد قمت بكتابة Module بسيط لارسال الملفات على الInternet سارفقه الليلة ان شاء الله بعد ضبطه في مشاركة التجارب

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#30

مشروع جميل

وفقكم الله

d4baa0.gif
#31

ما اخبار المشروع؟

في الحقيقة تولد لدي بعض الحماس .. هناك مشكلة و هي انني لم استخدم #C من قبل و لكني استخدمت جافا لفترة كافية ..

اعتقد ان اللغتين متشابهتين .. هل هناك مركز لـ API Documentation مثل http://java.sun.com/j2se/1.5.0/docs/api/index.html ؟

يعني بالعربي كدة اود الانضمام.

#32

على العموم أهلاً بيك في المشروع

أنا عارف إني مقصر حبتين في المشروع لكن الظروف ان شاء الله تنتهي على خير و أكمل المشروع و البركة في معتز و فيكم

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#33

هل هناك طريقة معينة في التنظيم ام ان العمل لا يزال على المنتدى فقط؟

أقصد, هل تم كتابة اي شي متعلق بقرائة و كتابة الـ bencoding types مثلا؟

#34

هذا ما كتبته حتى الآن في المشروع

و هو قارئ ملفات الTorrent و هو مجرب بنسبة 90% و يوجد 2 propeties فقط لم أكملهم و هما الcreation date و ال announce list

أما بالنسبة لجميع الproperties الأخرى فهو يقرأها بكفاءة

التعامل مع ملفات الTorrent سيكون من خلال الclass TorrenFile و طريقة استخدامها سهلة فقط

TorrentFile file = new TorrentFile("MyTorren.torrent");

و سيتم قراءة الملف و تجهيز المعلومات في الProperties كلها

القارئ يعمل على جميع أنواع الtorrent سواء Single أو Multiple

ان شاء الله قريبـــاً نسخة أقوى و أيضا سيضاف أليها امكانية الكتابة

شكراً

بالنسبة للBencoded Types

ستجد أن هناك class اسمها bElement و هي الclass الbase و يرث منها 4 classes و هي bStringElement و bIntegerElement و bList و bDictionary

سيتم شرحهم بالتفصيل لاحقاً لأني مشغول حالياً

Torrent.Net alpha 0.1.rar

Sr. Software Development Engineer
Hulu, LLC
My Blogs

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…