منتدى المنصورة برج بوعريريج التعليمية

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

منتدى اسلامي تعليمي

AWSurveys

المواضيع الأخيرة

» شركة تركيب وصيانة مكيفات مركزية بالرس
 درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي) Emptyالأحد مايو 05, 2024 7:07 pm من طرف سها مجدى

» غسيل مكيفات سبليت بالرياض
 درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي) Emptyالأربعاء أبريل 17, 2024 5:59 pm من طرف سها مجدى

» شركة تشطيب فلل بالباحة
 درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي) Emptyالثلاثاء أبريل 09, 2024 6:36 pm من طرف سها مجدى

» شركة مقاولات بالمبرز
 درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي) Emptyالأربعاء أبريل 03, 2024 4:53 pm من طرف سها مجدى

» شركة نقل عفش بالرياض الياسمين
 درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي) Emptyالجمعة مارس 22, 2024 7:02 pm من طرف سها مجدى

» مقاول اسفلت بالرياض
 درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي) Emptyالخميس مارس 14, 2024 12:12 am من طرف سها مجدى

» شركة تركيب المصاعد بعسير
 درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي) Emptyالجمعة مارس 08, 2024 8:34 pm من طرف سها مجدى

» مبلطين ممتازين بالرياض
 درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي) Emptyالثلاثاء مارس 05, 2024 10:49 pm من طرف سها مجدى

» شركة مقاولات بخميس مشيط
 درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي) Emptyالسبت مارس 02, 2024 11:03 pm من طرف سها مجدى

التبادل الاعلاني

احداث منتدى مجاني

أفضل 10 أعضاء في هذا المنتدى


    درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي)

    avatar
    Admin
    Admin


    رقم العضوية : 1
    عدد المساهمات : 1077
    دينار : 3245
    السٌّمعَة : 0
    تاريخ التسجيل : 12/03/2010
    العمر : 33
    الموقع : www.mansourahsidhoum.yoo7.com

     درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي) Empty درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي)

    مُساهمة  Admin الثلاثاء سبتمبر 12, 2023 9:54 pm

    جهز الموضوع للطباعة
    طباعة الصفحة:

    1 من 2
    إذهب الى منتدى:

    -- إختار منتدى من القائمة --
    درس تطبيقي :الإتصال بين جهازين و إرسال البيانات بينهما شرح مفصل (عصابة الدالفي)
    الصفحة التالية الصفحة الأخيرة عرض جميع المشاركات بالكامل تصغير عرض جميع المشاركات
    M Haroun
    02:15 - 2011/01/23 معلومات عن العضو Tweet
     



     





    و الصلاة و السلام على اشرف المرسلين ، محمد عليه الصلاة و السلام

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

    و بالاخص  منتدانا الغالي

     لغات البرمجة

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

    كما أقدم لكم أسفي لعدم نشاطي هذه الفترة بسبب بعض الإنشغالات ، لكن أتابع معكم كل جديد

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



    و طبعا اللغة المستعملة لذلك لغة   delphi

    الإصدارة 2010 مع العلم أنه يمكن استعمال ما جاء في هذا الدرس مع نسخ أقدم

    سنستفيد من درس طرق و  عمل برامج اتصال و نقل البيانات مع جهازين أو أكثر

    مثل تلك البرامج التي يمكنك أن تصممها هي برنامج شات أو نقل بيانات نصية كانت أو غير ذلك

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

    للإتصال بين جهازين يلزمنا أمرين مهمين الأول

    تصميم برنامج serveur و الآخر برنامج client


    يعمل برنامج serveur على فتح الإتصال بواسطة الرقم التعريفي الخاص بالإتصال مع socket serveur

    للتذكير فقط الرقم التعريفي الخاص بالإتصال هو المعروف لدى الجميع بالـــPort

    كما يتصل برنامج العميل client ببرنامج serveur  عن طريق عنوان الإيبيl'adresse IP

    و عندما يتصل البرنامجين (مع العلم كل برنامج على جهاز معين)

    يبقى الأمر المهم و هو انتقال البيانات  بين الجهازين أو بين برنامج serveur  و برنامج client





    لاستغلال الــsockets في الدالفي

    نحتاج لمكونين أساسيين



    المكون الأول





    TServerSocket

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



    المكون الثاني





    TClientSocket

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



    ملاحظة

    المكونان السابقان ، لا يتواجدان افتراضيا مع التبويبات الخاصة بالمكونات ، بل يتم تثبيتهما من خلال القائمة

    Composant ثم installer des  paquets ثم

    ثم عند الذهاب إلى المكان المخصص انظر الصورة



    و في المسار


    C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin

    اختر العنصر dclsockets140.bpl







    الآن تصميم برنامج serveur

    في برنامجنا هذا سنحتاج إلى

    ثلاث من المكون TGroupBox

    سنحتاج إلى زرين TButton

    و اثنين TEdit

    سنحتاج إلى اثنين من TLabel

    كما سنحتاج إلى TMemo

    و سيكون لدينا بطبيعة الحال العنصر المهم TServerSocket

    لتكون الواجهة النهائية بالصورة التالية





    الآن سنتأتي إلى الجزء البرمجي



    في حدث الضغط للزر الأولSe connecter  الخاص بالإتصال ندرج الكود التالي




    ServerSocket1.Port:=StrtoInt(Edit1.Text);
    ServerSocket1.Open;




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



    و في حدث الضغط للزر الثاني Se déconnecter الخاص بفصل الإتصال ندرج الكود التالي




    ServerSocket1.Close;

    طبعا لقد تم فصل الإتصال مع برنامج العميل في الكود السابق



    و الآن كي يتم قراءة المعلومات المستقبلة و خاصة بالــedit2 يتم كتابة الكود التالي في الحدث OnClientRead الخاص بالــ TServerSocket




    Memo1.Lines.Add('Lecture des informations effecuées');
    Edit2.Text:=Socket.ReceiveText;



    السطر الأول الخاص بحالة القراءة و الإستقبال

    و السطر الثاني أمر الخاص بالاستقبال و الإظهار



    الآن برمجة الأحداث المهمة اتبع المراحل خطوة ، خطوة





    في الحدث OnAccept الخاص بالــ TServerSocket ،يعني بعد الموافقة على الإتصال

    و سنقوم بكتابة الكود التالي :


    Memo1.Lines.Add('Connécté à '+Socket.RemoteAddress);





    لقد تم في الكود السابق إظهار حالة الإتصال

    في الحدث OnClientConnect الخاص بالــ TServerSocket ،يعني عندما يكون العميل قيد الإتصال و يتم قبول اتصال الخادم  نقوم بكتابة الكود التالي:




    Memo1.Lines.Add('Connexion acceptée par le socket serveur');



    كالعادة إظهار الحالة .



    في الحدث OnClientDisconnect الخاص بالــ TServerSocket ،يعني عندما يكون الاتصال مع العميل غير متاح او يغلق الاتصال  نقوم بكتابة الكود التالي




    Memo1.Lines.Add('Déconnécté');





    في الحدث OnListen الخاص بالــ TServerSocket ،يحدث هذا قبل البدأ بعملية التصنت (إن صح التعبير) مع الخادم و يتم فيه كتابة الكود التالي :




    Memo1.Lines.Add('A l''écoute...');





    و الآن عندما يتم فشل عملية الإتصال لأي سبب كان نقوم بكتابة الكود التالي في الحدث OnClientError ليبين نوع الخطأ:




    if ErrorEvent=eeGeneral then
    Memo1.Lines.Add('Erreur inattendu');
    if ErrorEvent=eeSend then
    Memo1.Lines.Add('Erreur d''écriture sur la connexion socket');
    if ErrorEvent=eeReceive then
    Memo1.Lines.Add('Erreur de lecture sur la connexion socket');
    if ErrorEvent=eeConnect then
    Memo1.Lines.Add('Une demande de connexion déjà acceptée n''a pas pu être achevée');
    if ErrorEvent=eeDisconnect then
    Memo1.Lines.Add('Erreur de fermeture d''une connexion');
    if ErrorEvent=eeAccept then
    Memo1.Lines.Add('Erreur d''acceptation d''une demande de connexion cliente');


    الآن إنتهينا من تصميم برنامج الخادم و ننتقل في الجزء الثاني



    الآن تصميم برنامجclient



    سنحتاج إلى ثلاث من  TGoupBox

    و نحتاج إيضا ثلاث من  TButton

    و نحتاج أيضا إلى TEdit  

    و ثلاث من  TLabel et

    و بطبيعة الحال العنصر المهم و هو TClientSocket  الذي سنحتاج عنصر واحد منه


    و في ما يلي سنبين اهم المهام المنصوصة على جل العنصار المذكورة
    "Button1" الزر الخاص بالاتصال  connexion
    "Button2الزر الخاص بفصل الاتصال  déconnexion
    "Button3" لارسال النص إلى برنامج الخادم  
    "Edit1" مربع النص الخاص بالمنفذ port الذي يستخدم للاتصال
    "Edit2" مربع النص الخاص بعنوان الإيبي  l'adresse IP الخاصة ببرنامج الخادم  serveur
    "Edit3" مربع النص الذي سندرج به النص الذي سيتم إرساله
    "Memo1" تستخدم لإظهار الحالة التي بها البرنامج و سنعرف الحالات في ما يأتي من شرح

    بعد الإنتهاء من التصميم  سينتج لدينا هذه الواجهة





    الآن انتهينا من تصميم الواجهة و نأتي إلى التصميم البرمجي

    بنفس سياق برنامج الخادم اتبع الخطوات التالية :



    في حدث الضغط NOOP لدى زر الاتصالSe connecter  اكتب الكود التالي :



     ClientSocket1.Port:=StrToInt(Edit1.Text);
    ClientSocket1.Host := Edit2.Text;
    ClientSocket1.Open;




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

    السطر الثالث لفتح الاتصال




    في حدث الضغط NOOP لدى زر قطع الاتصال Se déconnécter اكتب الكود التالي :



     ClientSocket1.Close;




    لقطع الاتصال ،هذا ما يقدمه الكود السابق



    في حدث الضغط NOOP لدى زر transmettre  الخاص بالارسال اكتب الكود التالي :





     ClientSocket1.Socket.SendText(Edit4.Text);
    Memo1.Lines.Add('Informations envoyées au serveur');




    و الأن مع تحديد الأحداث الخاصة بالعنصر المهم TClientSocket



    في الحدث  "OnConnect" و هذا الحدث يحدث مباشرة و تلقائيا بعد فتح الاتصال و فيه أكتب الكود التالي :

     Memo1.Lines.Add('Connecté à '+Socket.RemoteHost);



    الحدث "OnConnecting"  و يأتي عندما يكون الاتصال مفتوح  و اكتب فيه الكود التالي:

     Memo1.Lines.Add('Serveur a été trouvé');



    في الحدث "OnDisconnect"  الذي يحدث أو يقع عندما يتم غلق الإتصال بين العميل و الخادم و اكتب فيه الكود التالي:

     Memo1.Lines.Add('Déconnecté');






    " NOOP"  و قدم شرحه سابقا حيث يحدث عندما يكون هنالك خطأ ما و اكتب فيه الكود التالي :




    if ErrorEvent=eeGeneral then
    Memo1.Lines.Add('Erreur inattendu');
    if ErrorEvent=eeSend then
    Memo1.Lines.Add('Erreur d''écriture sur la connexion socket');
    if ErrorEvent=eeReceive then
    Memo1.Lines.Add('Erreur de lecture sur la connexion socket');
    if ErrorEvent=eeConnect then
    Memo1.Lines.Add('Une demande de connexion déjà acceptée n''a pas pu être achevée');
    if ErrorEvent=eeDisconnect then
    Memo1.Lines.Add('Erreur de fermeture d''une connexion');
    if ErrorEvent=eeAccept then
    Memo1.Lines.Add('Erreur d''acceptation d''une demande de connexion cliente');



    حمل البرنامجين (السورس الخاص بهما) من الرابط السفلي
    http://www.mediafire.com/?lf7ytivit381sbp

      الوقت/التاريخ الآن هو الجمعة مايو 10, 2024 7:01 pm