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

مشروع جماعي خطوة خطوة من البداية حتى النهاية - مناقشة: برنامج محادثة مثل ماسنجرmsn

مغلقرائج
بدأه B.M.AbdelAziZ في 5 يونيو 2007 · 91 رد · 30,047 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مشروع جماعي خطوة خطوة من البداية حتى النهاية

الخطوة الثالثة مناقشة المشروع الذي تم اختياره في التصويت السابق:

/index.php?showtopic=127582

الان نريد مناقشة النقط التالية

كيف يعمل برنامج المحادثة ؟ مواصفاته ؟

ما هي الخضائص التي تريدونها او تروها مناسبة ؟

مدة النقاش اسبوع وبعدها ننتقل للخطوة الرابعة

d4baa0.gif
#2

اظن ان ادوات اندي هي احسن خيار

وهناك خيار اخر عند انشاء المشروع

ارجوا ان يتم اضافة كل اعضاء المنتدى بنفس اسم المستخدم وكلمة المرور

بحيث يكون البرنامج هو وسيلة الربط المباشرة بين الاعضاء

#3

ادوات Indy جيدة وسهلة لكنها كغلاف لل Socket

لذلك استخدام Socket احسن،تعرف جيدا ما يحدث وتتحكم به كما تشاء

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

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

اهم شي الان هو مناقشة:

ما هي مميزات برنامج المحادثة

وكيفية عمله، لنناقش الالية ولو نظريا

d4baa0.gif
#4

السلام عليكم

منذ ايام كنت اعمل على برنامج يشبه هذه الفكرة

اولا يجب ان يكون هناك قاعدة بيانات

تحوي اسم المستخدم وكلمة السر ومعلومات العضو بالاضافة الى

حقل يحوي رقم ip حيث يتم تجديده في كل تسجيل دخول

وان يكون في الفورم الرئيسية server برقم ip

وبرقم port موحد بين الجميع مثلا 9000

وتكون هناك فورم للشات يتم انشاء نسخ عنها مع كل شخص يتصل بك

ويكون في هذه الفورم server مستقل ورقم port يتم تعيينه بحيث

عند الاتصال الاول يكون 9001 ثم 9002 وهكذا مع كل شخص فتح معك شات

هذه الفكرة جربتها وهي عملية 100 100

#5

السلام عليكم ورحمة الله وبركاته

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

وأردت الاستفادة من الاخوة هنا من خبرتهم في هذا المجال

وان شاء الله انا معكم مع اني قد أكون مشغول بالعمل أكثر

بالتوفيق ان شاء الله للجميع

#6

السلام عليكم ورحمة الله. :rolleyes:

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

أما فيما يخص لب الموضوع فيجب:

أولا : إعتماد قاعدة بيانات معينة مثل(XML)

ثانيا: مكونات مثل Socket أو Indy وأنا أفضل Socket كما قال الأخ B.M.AbdelAziZ

اقتباس
لذلك استخدام Socket احسن،تعرف جيدا ما يحدث وتتحكم به كما تشاء

أما الباقي فسنتحدث عنه لاحقا.

بالتوفيق إن شاء الله.

غــــــــــــــــــــــــــــفرانك ربنا وإليك المصــــير

#7

وانا ايضا افضل SOCKET ولكن يجب علينا ان يستلم احد الاعضاء ادارة المشروع ومن ثم توزيع المهام فيما بيننا والاهم هو شرح فكرة عمل المشروع

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

اللهم صلي وسلم وبارك على سيدنا محمد صلى الله عليه وسلم

#8

حتى الان لم يذكر احد خضائص ومميزات البرنامج...

تخيلو شخص لم يستخدم الانترنت في حياته و سال: ما هو برنامج المحادثة و كيف يعمل ؟

تم تعديل هذه المشاركة بواسطة B.M.AbdelAziZ في 6 يونيو 2007 في 18:12

d4baa0.gif
#9

نحب شيئا مميزا:

برنامج خفيف

دردشة صوتية

تبادل الملفات

أيقونات

قائمة الأعضاء

مشرفين

إنشاء رومات

جاري التفكير

#10

أعتقد البرنامج بشكل مبسط سيكون على النحو التالي :

أولا - يفتح البرنامج عارضا أسماء الاشخاص الموجودين على الخط (أون لاين)

1- يتم أتصال البرنامج مع قاعدة البيانات وتسجيل نفسه على أنه متصلحاليا بتسجيل (IP) الجهاز

2- يحصل من قاعدة البيانات الأشخاص المتصلين حاليا وعناوين أجهزتهم

ثانياُ - يمكننا أرسال بيانات (كلمات - ملفات) إلى الشخص الموجود على الخط

1- يفتح أتصال مع العنوان المرافق للشخص المطلوب التكلم معه

2- يرسل من خلال الأتصال البيانات المرادة

ثالثاً - تسجيل الخروج

1- تسجيل البرنامج نفسه على قاعدة البيانات بأنه غير متصل

2- إغلاق الإتصال مع قاعدة البيانات

ملاحظات

1-المشكلة التي واجهتني في محاولتي صنع برنامج كهذا من فترة هي عدم تحقيق الأتصال بين جهازين مباشرة (PeerToPeer)

لذلك أرى أن تحقيق الأتصال يحقق 95% من البرنامج

2- نحتاج إلى موقع أو جزء من موقع لتحقيق وجود هذا البرنامج

تم تعديل هذه المشاركة بواسطة decompiler في 8 يونيو 2007 في 22:44

#11

اقترح ان يكون عبارة عن غرف

تحمل نفس اسماء المنتديات كما في arabteam

مثل غرفة delphi و غرفة vb الخ

تكون الغرفة مثل ياهو تحمل مساحة للتحاور

وتظهر قائمة الموجودين في الغرفة وتستطيع القيام بحوار ثنائي

بمجرد تحديد مستخدم ما مثل ياهو

#12

السلام عليكم ورحمة الله وبركاتة

---------------------------------

مشروع إنشاء برنامج محادثة ( Chat) يتكون من ثلاث اجزاء رئيسية :-

1. قاعدة بيانات Data Base :-

--------------------------------------

هو المكان الذى سوف نستخدمة فى اضافة معلومات المستخدمين وبيانات البرنامج من غرف والى أخرة

التطبيق :

قاعدة البيانات المفضلة لدى : MySQL DB

* لسهولتها وقتها وبساطتها .

سوف نقوم ببناء قاعدة بيانات ولتكن سوف تتكون من جداول

a- User Table :

-> id, username, date of birth , password , Register date , age , status , about , country

b-Catogries Table

يحتوى على اسماء مجموعات الغرف

-> id , Catogry Name , rooms number

c- Sub Catogries Table

يحتوى على اسماء الغرف وعدد المستخدمين الموجودين داخل كل غرفة وصاحب الغرفة وتاريخ انشائها

-> id , Room Name , Owner Username , Register Room Date , room count , room topic

2. الخادم ( Server App. ) :-

-------------------------------

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

مثال : نستخدم امر لعمل ايقاف للسيرفر عن العمل

نضيف داخل الكلينت ( العميل) كود لإرسال بيان للسيرفر عبر السوكت

نضيف داخل السيرفر ( الخادم) كود لإستقبال البيان ومن ثم اختبارة وتنفيذه

-- ماذا فهمت منك ؟ نعم لقد فهمت إنى لما قوم بإرسال بيان للسيرفر يوجد به معلومات المستخدم فى عملية Register New User أو Sign Up

سوف يقوم السيرفر بإستقبال البيانات التى تحمل نفس الامر ومن ثم اضافتها لقاعدة البيانات

** ملحوظة ** لابد السيرفر أن يكون مربوط بقاعدة البيانات .

3. العميل ( Client ) :-

--------------------------

هو عبارة عن برنامج وظيفتة ارسال البيانات الى السيرفر ومن ثم استقبال البيانات مرة اخرة

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

Comming Soon

#13

السلام عليكم ورحمة الله وبركاته

أرجو أن لا تكونو بدأتم بدوني...

في الحقيقة كلمة برنامج محادثة مثل الMSN ربما تتطلب عمل وجهد أكبر للوصول الى مثل برامج الشات العالمية

القوة في برامج الشات هي السرفرات الموفرة للخدمة

في رأي من الأحسن فصل عملية التسجيل عن سرفر الشات يعني يكون لدينا أكثر من سرفر في البداية سرفر للشات النصي وسرفر للتسجيل ومعلومات المشتركين والغرف وسرفر ربما في المستقبل اذا تمكنا من حل مشكلة الPEER TO PEER خاص بالصوت والصورة

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

حسب علمي فان الياهو مسنجر رغم مايملكه من خوادم قوية يستعمل خدمات شركة أخرى مختصة في توفير الاتصال PEER TO PEER أعتذر نسيت اسم الشركة لكن حسب ماأذكر أن صاحبها توفي في مبنى التجارة العالمي في 11 سبتمبر ..

لقد ناقشنا في قسم الVB هذه الجزئية في عمل برامج الشات

/index.ph...=126609&hl=

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

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

بالتوفيق

#14

حسب الردود هناك فهمين لبرنامج المحادثة

1 هناك من ينحدث عن برنامج مثل الماسنجر MSN Messenger

2 هناك من يتحدث عن وجود غرف Rooms اي مثل IRC

ارجو ان نتفق علو احد من الاثنين و نركز عليه

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

d4baa0.gif
#15

شباب احنا اخترنا من الاول برنامج مثل MSN Messenger

يعني موضوع الغرف وماادراك مالغرف مش وقتها الحين

اللهم صلي وسلم وبارك على سيدنا محمد صلى الله عليه وسلم

#16

حتى الان هذا الرد للاخ Decompiler اقرب للمشروع من غيره من الردود

decompiler كتب:
أعتقد البرنامج بشكل مبسط سيكون على النحو التالي :

أولا - يفتح البرنامج عارضا أسماء الاشخاص الموجودين على الخط (أون لاين)

1- يتم أتصال البرنامج مع قاعدة البيانات وتسجيل نفسه على أنه متصلحاليا بتسجيل (IP) الجهاز

2- يحصل من قاعدة البيانات الأشخاص المتصلين حاليا وعناوين أجهزتهم

ثانياُ - يمكننا أرسال بيانات (كلمات - ملفات) إلى الشخص الموجود على الخط

1- يفتح أتصال مع العنوان المرافق للشخص المطلوب التكلم معه

2- يرسل من خلال الأتصال البيانات المرادة

ثالثاً - تسجيل الخروج

1- تسجيل البرنامج نفسه على قاعدة البيانات بأنه غير متصل

2- إغلاق الإتصال مع قاعدة البيانات

ملاحظات

1-المشكلة التي واجهتني في محاولتي صنع برنامج كهذا من فترة هي عدم تحقيق الأتصال بين جهازين مباشرة (PeerToPeer)

لذلك أرى أن تحقيق الأتصال يحقق 95% من البرنامج

2- نحتاج إلى موقع أو جزء من موقع لتحقيق وجود هذا البرنامج

d4baa0.gif
#17

أقترح أن نبداً بتقسيم المشروع إلى القسمين التاليين ثم تجميعها في مشروع واحد :

المشروع الأول :

برنامج يكتب ويقرأ من قاعدة بيانات موجودة على موقع أنترنت (أياً كانت قاعدة البيانات ) .

-----------------------

المشروع الثاني :

برنامج قادر على الأتصال ببرنامج ثاني عن طريق شبكة الأنترنت .

سيكون هناك خياران للمشروع الثاني :

الخيار الأول : أرسال البيانات عن طريق برنامج وسيط موجود على موقع يقوم هذا البرنامج فقط بتمرير البايت المرسل له إلى عنوان محدد مسبقاً لكي لاندخل في مجال أختصاص القسم الأول من المشروع وهو تسجيل العنوان وقرائته من قاعدة البيانات (هذا الخيار يحتم علينا معرفة في برمجة الويب )

الخيار الثاني :أن يكون بشكل أتصال مباشر بين الجهازين دون وجود أي وسيط (هذا الخيار يحتم علينا معرفة كل شيء عن برامج PeerToPeer )

---------------------------------------------------

ملاحظة ( حاولت الإستفادة من Jabber.org ولكني لم أستطع للآن من الممكن أن يحاول بعض الأخوة الأكثر خبرة ذلك )

جاري البحث عن حلول أو تجارب مماثلة .........

تم تعديل هذه المشاركة بواسطة decompiler في 12 يونيو 2007 في 18:32

#18

انا أؤيد الأخ decompiler في الاقتراح لكن لدي تعقيب

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

لذا أرى أن يكون منفصل لصعوبته أما الاجزاء الأخرى فيمكن المضي فيها بسهولة

طبعا هذه وجهة نظري فقط

#19

السلام عليمن يا اخوة

المشروع طموح بحق ، فهو يدخل في مجالات متعددة : _ قواعد البيانات و تسييرها ـ الشبكات و الاتصال بين الأجهزة ـ تبادل الملفات و التطبيقات.

فلذلك أقترح ـ وإن كنت مبتدئا ـ بعض الأشياء التي أراها عملية :

1 . تعيين المسؤول على المشروع

2 . تحديد دور و أقسام المشروع

3 . إنشاء قاعدة البيانات بعد الدراسة ـ أظن أنها قاعدة بيانات بسيطة ـ

4 . تحديد نسخة الدلفي المستخدمة ـ أقترح دلفي 7

5 . تحديد الأدوات المناسبة و البروتوكولات المستخدمة

6. بناء السيرفر

7. بناء الزبون بعد تحديد مهامه و دوره

فلا نتردد ولنبدأ هذا العمل الطموح

#20

السلام عليكم ورحمة الله وبركاته

بداية اشكر الاخ B.M.AbdelAziZ على هذه الجهود الطيبة في القسم

واتمنى ان تكون هذه الاعمال مثمرة ، تمنياتنا له بالتوفيق

احببت ان اشارككم هذا العمل ، ولدي اقتراح بسيط

لماذا لانقوم بإستخدام تقنية Web Services لإنجاز هذا العمل

خاصة ان المجال هناك خصب بعض الشي ،

لي تعليقات قادمه بإذن الله

تحياتي surini

#21

اعزائي لماذا لم تأخذو في اعتباركم العمل من خلف الروتر

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

فكرة عمل الماسنجر --- شارك برأي

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

#22

مر اكثر من اسبوعين

الا يوجد من لديه تصور لعمل برنامج المحادثة غير تصور الاخ Decompiler المطروح فوق

d4baa0.gif
#23

هناك فكرة العمل على طريقة سكايب

نموذج سهل الاستعمال و بسيط

#24

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

procedure connect2Db(DbPath:string);
begin
// ?????
// ?????
end;

procedure Write2Db(Param,Value:string);
begin
///// ?????????
end;

function ReadFromDb(Param:string):string;
begin
/// ???????????
end;

تم تعديل هذه المشاركة بواسطة decompiler في 24 يونيو 2007 في 22:23

#25

السلام عليكم ورحمة الله وبركاته

في البدء أردت أقول أنه يجب علينا الاتفاق أولا على شئ هو مراعاة تطوير البرنامج

بالنسبة لفكرة السكيب أخ بشير أظنها صعبة نوعا ما لاعتمادها على بروتوكول sip مما يعطي القدرة على اتصال الكمبيوتر بالهاتف وكل برامج الشات الآن انتقلت الى هذا البروتوكول الذي أصبح حتمية الآن خاصة مع تطور قطاع الاتصالات ومن جهة فان مشكل الpeer2peer غير مطروح في هذا الاطار

المهم بالنسبة لقاعدة البيانات أخ decompiler هل سيكون الاتصال بها مباشرة عن طريق برنامج العميل ؟

او عن طريق webservice

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

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