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

مشروع تبادل ملفات على الشبكة بإستخدام

رائج
بدأه rober في 30 يناير 2009 · 92 رد · 13,409 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

بعد حدوث مشكلة في دلفي 7 بسبب غلطة أحد الأصدقاء و إنتظار وصول القرص الخاص بها و توقفي عن العمل الفعلي

قلت لنفسي أحاول عمل شيء جديد يخرجني من جو قواعد البيانات و أتعلم منه شيء جديد رجعت إلى دلفي 5 و إذ بي أرى تبويب internet في شريط المكونات فخطرت ببالي فكرة عمل مشروع صغير على حجمي يقوم بتبادل الملفات على الشبكة بدلا من عمل المشاركة التي تعتبر مشكلة في هذه الأيام مع إنتشار الفايروسات

الكلام المفيد

قمت بعمل المشروع بحيث يقوم الشخص المستقبل بفتح المشروع و يقوم الشخص المرسل بذلك أيضا يقوم المرسل بتحديد إسم الحاسب و الملف و عمل الإتصال و إرسال الملف و تظهر رسالة للمستقبل بوجود ملف و يحدد مكان الحفظ إلى الأن الأمور بخير لكن واجهتني مشكلة هي عند وصول الملف إلى الشخص المستقبل لا أستطيع تحديد مكان الحفظ إلا بإستخدام الـ edit أو أن أضع مسار ثابت

بصراحة أنا مبتدأ على العمل بـ server و client لكن قلت لا ضرر من المحاولة و إستغلال الوقت الضائع بشيء جديد

فقلت أن أضع ما قمت بعمله حتى الأن ليراه الأخوة الكرام لرؤية حل للمشكلة و عمل التعديلات اللازمة لما قمت به

طبعاً أنا طامع أن يكون المشروع في قسم المشاريع لكن أتصور أنه ليس بأهمية المشاريع السابقة

يالله خيرها بغيرها

تم حذف المرفق ليبدأ المشروع من جديد خطوة بخطوة إن شاء الله و بعونه

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 26 أغسطس 2011 في 16:42

1

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#2

جميل اخي روبر

ولما لا ينظم الى قسم المشاريع

ولكن اخشى انه عليك تقديم البرنامج من اوله وليس جهازا كما وضعته

وان تقوم انت بتسيير المشروع

وفقنا الله واياكم

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#3

اخي روبر لماذا لاتجعل

stream

يكون Nil مع بدا تطبيق البرنامج مثلا وهكذا يكون عملي اكثر وبهذا كذلك تضمن عدم حجز الذاكرة من الفراغ .

Stream:=Nil;

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#4

بارك الله فيك اخي rober عل المشروع الطيب و النية الحسنه لكن كما قال الاخ على نما انه مشروع يجب ان يشارك فيه على الاقل عضوين وستجدنا ملتفين حولك

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

وهكذا حتي يكتمل و لك الاجر و الثواب .

ولما لا تضاف اليه امور اخي و يكبر .

شكرا

#5

السلام عليكم

مشكورين أساتذتنا على التشجيع

سأقوم بإذن الله بعمل المشروع من الأول خطوة بخطوة لكن هناك عدة عثرات في وجهي أحدها أني لا أملك الخبرة في إدارة المشاريع و لا أملك خبرة أساسا في الـ client server

مع هذا سأحاول القيام بالمشروع فأنا أحب كل جديد و أحب تعلم الأشياء الجديدة

طبعا أنا منتظر منكم المساعدة في المشروع سأبدأ ما عندي و نرى ماذا يكون من أمري

mohfa كتب:
اخي روبر لماذا لاتجعل

stream

يكون Nil مع بدا تطبيق البرنامج مثلا وهكذا يكون عملي اكثر وبهذا كذلك تضمن عدم حجز الذاكرة من الفراغ .

Stream:=Nil;

إقتراح جيد و سأعتمده عند إعادة المشروع

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

أنت تفعل ما تشاء أخ زكري و سأقوم بحذف المرفق حتى لا أزعجك بحذفه

زكيري عبد العالي كتب:
ولما لا تضاف اليه امور اخي و يكبر .

هذا ما كنت أريده تماما من وضع المشروع

ترقبو بداية جديدة للمشروع غدا بإذن الله

تم تعديل هذه المشاركة بواسطة rober في 30 يناير 2009 في 23:39

1

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#6

بارك الله فيكم اخواني

ممكن المكون TclientSocket و TserverSocket لأني استخدم نسخة 7

#7
me&delphi كتب:
بارك الله فيكم اخواني

ممكن المكون TclientSocket و TserverSocket لأني استخدم نسخة 7

هل حاولت إستخدام google

http://www.google.com/search?hl=ar&q=t...delphi+7&lr=

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#8

المكون TclientSocket و TserverSocket موجود اصلا في الدلفي 7 ولكنه غير مثبت فقط .

ولتثبيته :

Component ثم Install Packages ... ثم Add ... ثم إختر كما هو في الصورة .

post-36253-1233354405_thumb.jpg

والسلام عليكم

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#9

السلام عليكم

فكرة المشروع : يقوم المرسل و المستقبل بفتح البرنامج و يقوم المرسل بتحديد الحاسب المستقبل من مربع تحديد الحاسب ثم يحدد الملف المطلوب إرساله من مربع الفتح بعد تحديد الملف يتم إرسال الملف تظهر رسالة للمستلم تعلمه بوجود ملف مرسل إليه و في حال الموافقة على إستلام الملف يتم إظهار مربع حفظ لتحديد مكان حفظ الملف و إسمه

طبعا يمكن أن يكون للمشروع تطويرات أكثر مثلا أن يعمل كـ service في الويندوز - إضافة أمر إرسال في قائمة الزر الأيمن عند الضغط على الملف - إضافة إرسال مجلد أيضا و يمكن أن يكون هناك تطويرات أكثر

لكن لست على دراية تكفي لعمل ذلك سنبدأ الأن على الشاكلة البسيطة ليتعلم المبتدؤن ( أنا :blush: ) ثم نبدأ بالتطوير أكثر فأكثر

بدأت أحلم بالإصدار بيتا :lol: :P

سيكون المشروع على delphi 7 أو 5

توكلنا على الله

الأدوات التي سوف تستخدم

form

serversocket

clientsocket

button

opendialog

savedialog

هل نكمل أم هناك إقتراحات أفضل ؟؟

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#10

مشروع جميل جدا ، بارك الله فيكم

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#11

توكلنا على الله

الاقتراحات بعد ان تنتهي ان شاء الله

#12

هاهي البداية :

في المرفق تجد :

تطبيق ال Server و Client .

1 :

شغل ال Server

2 :

شغل ال Client

3 :

لاحظ صورة ال Client على تطبيق ال Server عندما يكون متصل او غير متصل .

هي ياخي روبر واصل في المشروع .

File_Transf.rar

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#13

السلام عليكم

اليوم هو اليوم الأول من العمل على المشروع كما تحدثنا فالأدوات المستخدمة تم ذكرها مسبقا

الأن نأتي للبداية

نحتاج إلى طريقة لتحديد عنوان الأي بي ( ip address ) الخاص بالمستقبل لتوجيه الملف إليه

الطريقة المقترحة : تحديد إسم الحاسب من مربع تحديد الحاسب يدويا ثم عمل ping على الإسم المحدد للحصول على عنوان الأي بي ( ip address )

من سيشارك بإقتراحات ؟؟

أخ محمد سوف أجرب و أخبرك

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#14
اقتباس
الطريقة المقترحة : تحديد إسم الحاسب من مربع تحديد الحاسب يدويا ثم عمل ping على الإسم المحدد للحصول على عنوان الأي بي ( ip address )

لما لا نملا القائمة برمجيا عند تشغيل البرنامج

#15

انا اقترح ان يكون عمله كالتالي :

1- في جهة الكلاينت ان يقوم بعمل حساب جديد يوزر و باسورد

2- ان يكون هناك عملية تسجيل دخول

3- ان يكون هناك قائمة بالاعضاء الموجودين Online

4- ان يتم تحديد الشخص المراد ارسال الملف له ثم يتم تحديد الملف وارسالة request للعضو الاخر يطلب فيها قبول او رفض الملف .

هذا مبدئيا

التطويرات المستقبلة :

1- ان يكون هناك امكانية تحديد مجلد مشاركة عند كل عضو ويمكن الاطلاع علي ما بداخله عند الجميع .

2- ممكن تطوير امكانية محاثة نصية خفيفة بين الاعضاء .

هذا ما جاد به عقلي حتي هذه اللحظة

تحياتي :)

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#16
زكيري عبد العالي كتب:
لما لا نملا القائمة برمجيا عند تشغيل البرنامج

أخ زكري عن أي قائمة نتحدث

أنا كما قلت لست على دراية كافية بالموضوع لذلك أعذروني :blush:

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#17
اقتباس
عن أي قائمة نتحدث
اقتباس
تحديد إسم الحاسب من مربع تحديد الحاسب يدويا

كل الحواسب المتصلة اي قائمة المستخدمين الموجودين علي الشبكة

#18

اخي روبر هل جربت المرفق ؟

ام يوجد هناك تعديل .؟

العملية :

نثبت تطبيق ال Client على كل جهاز Cilent نقوم بالإتصال بالطبع تطبيق ال Server يكون مثبت على ال Server .

فإذا كان اي Client متصل فسوف يظهر على لوحة تطبيق ال Server الم يعجبك المثال إذا كان كذلك فسنغيره .

اقتباس
لما لا نملا القائمة برمجيا عند تشغيل البرنامج

اخي عبد العالي المرفق يقوم بذلك

تم تعديل هذه المشاركة بواسطة mohfa في 2 فبراير 2009 في 17:06

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#19

السلام عليكم

أخي محمد شاهدت المثال المرفق

لكن يجب أن يكون الكلينت بالأساس على علم بإسم الـ host أو الـ address

بمعنى أخر أن الكليت يجب أن يتصل بالسيرفر و ذلك لن يتم حتى يكون الكلينت على دراية بإسم أو عنوان السيرفر, أليس كذلك ؟؟

أخ زكري هل شاهدت الرابط الذي كان موجود في بداية الموضوع ؟؟

فقد كان يعتمد على مربع تحديد الحاسب الذي يقوم بإظهار كافة الحواسب التي على الشبكة و بعد أن تعلمت أن خاصة الـ host يمكن أن تستخدم بدل من الـ address من مثال الأخ محمد فلا حاجة لمعرفة عنوان الأي بي و يمكن الإعتماد على إسم الحاسب فقط

ما رأيكم ؟؟

تم تعديل هذه المشاركة بواسطة rober في 2 فبراير 2009 في 18:38

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#20
prof_1982 كتب:
انا اقترح ان يكون عمله كالتالي :

1- في جهة الكلاينت ان يقوم بعمل حساب جديد يوزر و باسورد

2- ان يكون هناك عملية تسجيل دخول

3- ان يكون هناك قائمة بالاعضاء الموجودين Online

4- ان يتم تحديد الشخص المراد ارسال الملف له ثم يتم تحديد الملف وارسالة request للعضو الاخر يطلب فيها قبول او رفض الملف .

هذا مبدئيا

التطويرات المستقبلة :

1- ان يكون هناك امكانية تحديد مجلد مشاركة عند كل عضو ويمكن الاطلاع علي ما بداخله عند الجميع .

2- ممكن تطوير امكانية محاثة نصية خفيفة بين الاعضاء .

أخي prof إقتراح جميل جداَ لكنه صعب كبداية فنحن نسعى أن يكون هذا المثال بسيط في البداية و متطور مع مرور الوقت

يمكن أن يكون كتطوير للبرنامج مستقبلا

بارك الله فيك

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#21

حسب ظني ان الإتصال بين الكلينت والسرفر يكون حسب البورت المحدد اما الaddress إذا اردت فيمكن ان ياخذها تلقائيا من الجهاز المثبت فيه وعندما يتصل بالسرفر فسوف يبعث إسم الجهاز و ال address.

يعني ان السرفر سوف يتلقى إسم الجهاز و ال address

من الكلينت .

والله اعلم

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#22

أخي محمد بصراحة لا أعلم إن كان ذلك صحيح لكني قمت بإستخدام السيرفر و الكلينت و السيرفر لا يعرض إسم الحاسب المتصل إلى عند تحديد إسم و أو عنوان السيرفر و عمل الإتصال من جانب الكلينت

حاولت عمل إتصال بدون ذكر عنوان أو إسم السيرفر و لكن ذلك لم ينجح أيضا

فهل تجربتي صحيحة أم أنه هناك طريقة أخرى لتجربة ذلك ؟؟

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#23

تحديث المرفق .

ايجاد الهوست و ال Addr تلقائيا .

File_Transfer.rar

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#24

السلام عليكم

أخي محمد في المثال الذي أرفقته في أخر رد لك قمت بالحصول على إسم و عنوان الحاسب الذي توجد عليه الكلينت

كيف سوف تتصل نسخة الكلينت بالسيرفر دون معرفة إسم أو عنوان الحاسب الذي وضعت عليه نسخة السيرفر ؟؟

أرجو منك شرح المثال لو تكرمت

أرجوك أعذرني لكني :wacko: :wacko:

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#25

هذا مثال على الطريقة التي ذكرتها و هي تحديد إسم الحاسب من مربع تحديد الحاسب

test_file_transfer.rar

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

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