![]() |
|
سؤال حول Indy (إرسال/إستقبال البيانات) - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : سؤال حول Indy (إرسال/إستقبال البيانات) (/showthread.php?tid=5928) الصفحات:
1
2
|
سؤال حول Indy (إرسال/إستقبال البيانات) - ALmuhhnad - 08-02-2014 السلام عليكم ورحمة الله وبركاتة كنت قد اكتشف المكون Indy IRC وقمت بعمل برنامجين (Client/Server) حيث يقوم الكلينت بالإتصال بالسيرفر .. وتتم عملية إرسال وإستقبال البيانات لكني لم استطع جعل السيرفر يرسل البيانات إلى الكلينت. وهذا تطبيقي على X4 السؤال هنا كيف اجعل السيرفر يرسل إلى الكلينت المتصل به ؟:confused: سؤال حول Indy (إرسال/إستقبال البيانات) - Houdini - 09-02-2014 فكرة الـ irc تختلف عن اتصال العادي يتم عمل اتصال اشبه ما يكون بالغرف بتصل عليها الـ clients و اي شي يكتب في تلك العرف يرسل الى جميع متصلين من client في الغرفة لا ادري ادا يمكن للـ server ارسال ام يكتفي بالمعالجة الاتصال و غرف و امورها و رسائل فيهاا الافضل استعمال برتكول الام لكل هدا tcp و معروف ك tidtcpserver - tidtcpclient سؤال حول Indy (إرسال/إستقبال البيانات) - ALmuhhnad - 09-02-2014 حاولت ان اطبق ذلك من خلال tidtcpserver - tidtcpclient ونفس النتيجة .. لا أعرف ماهي الطريقة لجعل Server يستطيع إرسال بيانات إلى Clients واعتقد ان Indy IRC هي نفس المكون الرئيسي Indy TCP وإنما فقط مضافه لها بعض الخصائص الخاصة بالغرف الجماعية وخصائصها .. سؤال حول Indy (إرسال/إستقبال البيانات) - Houdini - 09-02-2014 من جهة سيرفر في بيئة الاندي هنالك نمطين من الاستقبال التلقائي للبيانات 1 - عبر الاوامر المسيرة بالاحداث command handler 2 - عبر حلقة يتم استقبال فيها البيانات المرسلة execute loop اما ارسال فيكون عبر دوال write ln -wrtite string - write integer - write stream * ممكن اسقبال بيانات عبر دوال ايضاا read ln -read string - read integer - read stream اما الـ client ف فقط بالدوال سؤال حول Indy (إرسال/إستقبال البيانات) - ALmuhhnad - 09-02-2014 طيب إذا تكرمت بمثال للسيريفر عن : 1 - عبر حلقة يتم استقبال فيها البيانات المرسلة execute loop 2 - الارسال عبر دوال wrtite string - write integer - write stream سؤال حول Indy (إرسال/إستقبال البيانات) - ALmuhhnad - 10-02-2014 السلام عليكم ورحمة الله وبركاتة أكتشفت طريقة إرسال البيانات إلى Clients ... وهي من خلال الكود التالي : PHP كود : procedure TForm1.Button3Click(Sender: TObject);سؤال حول Indy (إرسال/إستقبال البيانات) - ALmuhhnad - 12-02-2014 السلام عليكم .. أجد مشكلة أخر بعملية الأرسال وهي اني عندما ارسل من خلال الكود الموضح بالمشاركة التي تسبق هذه .. يتم الارسال وبعد ذلك اضغط الزر مره اخرى .. لا يتم الارسال .. واضغط للمره الثالثة يتم الارسال .. أي انه يتم الارسال مره بعد مره وليس كل مره اضغط الزر يتم الارسال ! هل يعرف احدكم السبب ؟ سؤال حول Indy (إرسال/إستقبال البيانات) - ALmuhhnad - 13-02-2014 .. أعتقد أني حصلت على الحل , وهو أن المكون Indy له طريقة في التعامل مع البيانات المرسلة حيث أن الدالة : ReadLn PHP كود : AContext.Connection.Socket.ReadLn() في البداية تتلقى البياانات وبعد ذلك تتلقى بيانات آخرى تشير إلى أن السيرفر انتهى من أرسال البيانات .. وفي حالتي انا لم اضع البارمترات الخاصة بالدالة .. لذلك اصبحت ( ترسل البياانات مره بعد مره كما ذكرت ) لذلك توجب علي أن اضع بارمترت وهو عبارة عن String يشير إلى نهاية إرسال البيانات كتالي : PHP كود : procedure TForm2.IdIRC1AfterCommandHandler(ASender: TIdCmdTCPClient;هذا ما استنتجته .. والسلام عليكم وشكرا لك أخي Houdini سؤال حول Indy (إرسال/إستقبال البيانات) - Sonic - 16-02-2014 لماذا العربي يظهر على استفهمات والدلفي لايقبل الترميز سؤال حول Indy (إرسال/إستقبال البيانات) - ALmuhhnad - 16-02-2014 همم فعلاً .. ربما لم اكتب الكود الخاص بالترميز UTF-8 .. وكذلك نستطيع حل المشكلة بعمل دالة تستبقل باايانات Stream وتحولة إلى String العربي
|