تبادل البيانات بين تطبيقين عبر الكمبيوتر على شبكة LAN

StackOverflow https://stackoverflow.com/questions/1254698

  •  12-09-2019
  •  | 
  •  

سؤال

لدي حاجة إلى تطبيق تطبيقين ستبادل البيانات مع بعضهما البعض. سيتم تشغيل كلا التطبيقين في أجهزة كمبيوتر منفصلة وهي جزء من شبكة LAN.

كيف يمكننا القيام بذلك في دلفي؟

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

هل كانت مفيدة؟

المحلول

إذا كنت أكتبها بنفسي، فأنا (تقريبا) دائما استخدام مآخذ لتبادل البيانات بين التطبيقات.

إنه خفيف الوزن، يعمل بشكل جيد على نفس الجهاز، عبر الشبكة المحلية أو الإنترنت بدون تغييرات ويتيح لك التواصل بين التطبيقات بأذونات مختلفة، مثل الخدمات (تسبب رسائل Windows (تسبب مشاكل Windows هنا).

قد لا تكون متطلبات لك، لكنني أيضا من محبي النقل المستقلة منصة، مثل TCP / IP.

هناك الكثير من الخيارات المجانية ل Delphi. إليك عدد قليل مني أعرفها. إذا كنت تحب حظر المكتبات، انظر إندي أو تشابك عصبى. وبعد إذا كنت تفضل عدم الحجب، تحقق من ICS..

نصائح أخرى

قبل أن تختار تقنية، يجب أن تميز التواصل وفقا لإنتاجية، والتعبئة، والكمون، والأهمية.

الإنتاجية - ما مقدار البيانات لكل وحدة ستجعل التحرك؟ نطاق القيم المحتملة هو واسع جدا أن تطبيقات الأدنى والأعلى من المعدل ليس لها شيء مشترك تقريبا.

الحبيبية - ما حجم الرسائل؟ ما مقدار البيانات التي يحتاجها تطبيق الاستقبال قبل أن يتمكن من استخدام الرسالة؟

الكمون - عندما يرسل أحد الأذين رسالة، متى يجب أن يراه التطبيق الآخر ذلك؟ ما مدى سرعة طلب الاستقبال للتفاعل مع تطبيق الإرسال؟

الحرجة - كم من الوقت يمكن ترك رسالة مستلمة دون مراقبة قبل أن يتم تجاوزها بواسطة رسالة لاحقة؟ (هذا عادة غير مهم ما لم يكن الإنتاجية مرتفعة وتخزين الرسائل محدود.)

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

-al.

اعتدت على استخدام Mailslots إذا كنت بحاجة إلى التواصل مع أكثر من جهاز كمبيوتر واحد في وقت واحد ("البث") عبر شبكة، على الرغم من وجود تحذير غير مضمون للزواج.

بالنسبة إلى 1 إلى 1، فإن الأنابيب المسماة هي طريقة في Windows للقيام بهذا النوع، فأنت تقوم بشكل أساسي بفتح قناة اتصال بين جهازين من 2 جهاز كمبيوتر ثم كتابة الرسائل في الأنبوب. غير مباشرة إلى الأمام للبدء بلية ولكن موثوقة للغاية والطريقة الموصى بها للأشياء مثل خدمات Windows.

تقدم MS الأنابيب المسماة كطريقة بديلة للتواصل مع خادم SQL (بخلاف TCP / IP).

ولكن كما قال بروس، TCP / IP هو معيار ومنصة مستقلة، وموثوقة للغاية.

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

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

  • باستخدام خادم SQL
  • اتصال المقبس

انظر إلى الحلول التي تستخدم واجهات نوع "استدعاء الإجراء البعيد". أنا أستعمل Remobjects SDK. لهذا النوع من الشيء، ولكن هناك إصدارات مفتوحة المصدر من realthinclient. والتي من شأنها أن تفعل أيضا كذلك.

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

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

إذا لم يكن اتصالك حساسا أو حاسما، فقد يكون استطلاعا بسيطا لقاعدة بيانات أو ملف على فترات منتظمة كافية. إذا كان اتصالك حرجا وحساسة الوقت، فقد يستحق وضع خادم Tcpip في كل عميل متابعة. إذا كان مجرد حساسا للوقت، فسيحقق مائلات اختيار جيد، إذا كان حرجا ولكن ليس حساسا الوقت ثم تسمى الأنابيب.

لقد استخدمت إندي المكونات المتعددة المكتبة (IDIPMCastClient / Server) لهذا النوع من الأشياء عدة مرات. التطبيقات فقط أرسل XML إلى بعضها البعض. سريعة وسهلة مع الحد الأدنى من متطلبات الاتصال.

ربما أسهل طريقة القراءة وكتابة ملف (أو ربما ملف واحد لكل اتجاه). كما أن لديها ميزة أنه من السهل محاكاة وتتبع. إنه ليس هو أسرع خيار، على الرغم من (وبالتأكيد يبدو أن عرجاء ؛-)).

يمكن أن يكون الاحتمال "مشاركة" كائنات عبر الشبكة.

فمن الممكن مع خادم العميل orm مثل لدينا مورم صغير.

تعمل Librares المصدر المفتوح هذه من Delphi 6 حتى XE2، واستخدم JSON للإرسال. هناك بعض ميزات الأمان المدرجة (التي تنطوي على آلية المصادقة المريحة)، ويمكن استخدام أي قاعدة بيانات - أو لا قاعدة بيانات على الإطلاق.

نرى على وجه الخصوص أول أربع عينات قدمت, والوثائق المرتبطة.

لتكامل طلب دلفي، أ رسالة المنحى الوسيطة قد يكون خيارا. تقدم وسطاء الرسائل تسليم مضمون، وتحميل موازنة، ونماذج الاتصال المختلفة وهم يعملون عبر النظام الأساسي واللغة عبر اللغة. تتضمن وسطاء رسائل الرسائل مفتوحة المصدر:

(إخلاء المسئولية - أنا مؤلف مكتبات عميل Delphi / Free Pascal Free لهذه الخوادم)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top