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

كيف أكتب تطبيق لنقل سطح المكتب(desktop sharing)

مغلق
بدأه ameen385 في 13 نوفمبر 2005 · 10 رد · 853 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هذه أول مشاركة لي في هذا المنتدى, وأرجو أن أجد لديكم الخير الفائدة

أبحث عن مساعدة في مايلي,

أريد أن انقل صورة سطح مكتب لجهاز A الى مجموعة من الأجهزة الأخرى

أتوقع أنه من الممكن الاستفادة من RMI كمايلي

يكون لدينا remote class على الجهاز A يعمل print screen بفترات دورية صغيرة ويضعها في image object , ويحوي هذا الصف remote methode تعيد نسخة من هذه الصورة.

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

الآن و كمناقشة لفعالية هذه الطريقة في حال كان من الممكن تطبيقها, هذه الطريقة أظن أنها أسهل في التنفيذ ولكن أليس من الممكن أن تؤدي الى بطئ في نقل سطح المكتب للأجهزة الأخرى؟ لأن كل client يستدعي ال remote methode وبالتالي سيتم انشاء threade جديد من أجل كل client و جميع هذه الthreads تنقل نفس الصورة أي تقوم بنفس العمل تماما.

ما أريد أن أقوله انه أليس من الأفضلاستخدام socket بحيث نعمل print csreen على الجهاز A ثم يقوم threade واحد بأخذ هذه الصورة ويعمل لها multicasting باستخدام البروتوكول UDP و بالتالي نكون أرسلنا مرة واحدة ووفرنا ضغط على الشبكة؟

الآن ما أريده من الأخوة في هذا المنتدى - طبعا أصحاب الخبرة في هذا المجال - هو ابداء الرأي (المحاسن و المساوئ) لكل من الطريقتين و بعض التوجيهات من أجل تحقيق كل منهما -ان أمكن- اضافة الى السؤالين التاليين على اعتبار أنني جديد على الجافا:

1- في الطريقة الأولى ما هو ال api الذي يعمل print screen وما هو الصف المناسب لتخزين الصورة وعرضها على frame

2- في الطريقة الثانية و بعد أن قرأت عن ال socket استطعت أن أنقل text لكن ان أردت أن أنقل الصورة فهل سأحولها الىstream وأضعها في buffer ثم أعمل لها multicasting ؟ كيف أفعل ذلك؟.

في النهاية آسف لأني أطلت وأثقلت عليكم.

أخوكم محمد أمين_سوريا

#2

بس حبيت أرف الموضوع للشريط المتحرك لأنني ناطر جواب

#3

لكن لماذا لايقوم ال Remote Object في الجهاز A بارسال نسخة من الصورة الى الاجهزة؟ بمعنى انه لاداعي لان يقوم كل client باستدعاء remote method حتى يحصل على الصورة.. كل ماعليك هو تسجيل كل client في Remote Class ومن ثم يقوم ال Remote Class ب remote call لكل client .

هذه الطريقة تسمى RMI Callback.

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#4

شكرا على الرد, لكن ماذا اختلف لدينا في ال call back؟

اذا كانت ال remote methode تعيد class من النمط صورة وكل client استدعى هذه الطريقة

فنكون أرسلنا نسخة من هذه الصورة لكل client, فبماذا يختلف الcall back عن ذلك؟

#5

اذا لم نستخدم callback فسوف نضطر ان نجعل كل client ينادي remote method كل فترة معينة؛ وهذا يؤدي الى:

1. زيادة الكود في كل client . لانك سوف تستخدم thread ليقوم بمناداة remote method .

2. اذا افترضنا ان كل client ينادي remote method كل 2 ثانية؛ ربما يقوم ال client باستدعاء نفس الصورة مرتين متتاليتين اذا غيرنا زمن تحديث الصورة في remote class.

اذا استخدمت rmi callback فسوف ترتاح من قضية التزامن؛ وسوف يكون تركيزك الكامل فقط على remote class .

ملاحظة: سوف تحتاج ان يكون عندك Client Interface و Server Interface.

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#6

وايضا لو حصل ان remote class لم يقم بانشاء الصورة وحصل استثناء معين؛ فسوف تتعطل كل ال clients .

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#7

هل أفهم من كلامك أنه في حال استخدام ال rmi callback فان ال remote class يقوم بنقل الصورة في حال تغيرها فقط؟

#8

نعم؛ اذا قام الكلاس بتحديث الصورة فانه يقوم باستدعاء بتحديث كل client. فهو اذا يقوم باستدعاء remote methode .

ولذلك سمي rmi callback

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#9

نقطة اخرى: لماذا لاتستخدم JMS؛ واظنها هي الطريقة الصحيحة في مثل هذه الحالات. انا الان اقرأ عن هذه التقنية.

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#10

طيب ممكن توضيح عن تقنية تةس و فوائدها في هذا الموضوع لأني لم أسمع بها من قبل

#11
ameen385 كتب:
طيب ممكن توضيح عن تقنية تةس و فوائدها في هذا الموضوع لأني لم أسمع بها من قبل

عفوا أقصد jms بس على مايبدو أن الكيبورد كان عمال يكتب عربي وما انتبهت بامكانك التأكد اذا نظرت الى أزرار الكيبورد التي عليها الأحرف "تةس".

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

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