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

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

سؤال

أقوم بإنشاء عميل/خادم عن بعد .NET الذي سيقوم بإرسال آلاف الملفات ، بأحجام مختلفة (كل شيء من بايت بايت إلى مئات ميغابايت) ، وأود بعض التعليقات حول أفضل طريقة لتحقيق ذلك. كما أراه ، هناك خياران:

  • قم بتسلسل الملف بأكمله في كائني عن بُعد ونقله في وقت واحد ، بغض النظر عن الحجم. من المحتمل أن يكون هذا هو الأسرع ، لكن الفشل أثناء الإرسال يتطلب إعادة نقل الملف بأكمله ، دون أي وسيلة لاستئناف.
  • إذا كان حجم الملف أكبر من شيء صغير (مثل 4 كيلو بايت) ، فاكسره إلى قطع 4 كيلو بايت وبعدها عن بُعد ، وإعادة تجميعها على الخادم. بالإضافة إلى تعقيد هذا ، فإنه أبطأ بسبب استمرار الرحلات المستمرة والاعتراف ، على الرغم من أن فشل أي قطعة واحدة لا يضيع الكثير من الوقت.
  • بما في ذلك شيء مثل خادم FTP أو SFTP مع طلبي - سيقوم العميل بإخطار الخادم بأنه يبدأ باستخدام جهاز التحكم عن بُعد ، وتحميل الملف ، ثم استخدام الإخطار بإكماله. أرغب في احتواء كل شيء في تطبيقي بدلاً من طلب خدمة FTP منفصلة ، لكنني منفتح على هذا الخيار إذا كان هناك حاجة.
  • استخدم نوعًا من اتصال TCP المعلن أو WPF أو طريقة نقل أخرى تم تصميمها للتعامل مع الفشل أو قادر على القيام بنوع من نقطة التفتيش/السيرة الذاتية.
  • أي شخص آخر أفتقده؟

ما هي طريقة الإرسال الأكثر مرونة/موثوقية؟ أنا لست قلقًا بشأن السرعة ، لكن المزيد حول الموثوقية - أريد أن يتحرك الملف ، حتى لو كان ببطء. نظرًا لأن العميل والخادم سيكونان متعدد الخيوط ، يمكنني نقل ملفات متعددة في نفس الوقت إذا سمح ذلك بالاتصال بذلك.

شكرًا على ملاحظاتك - سأرمي مكافأة للحصول على بعض التوصيات بشأن الطرق التي ينجز بها الأشخاص ذلك.

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

المحلول

البتات (خلفية خدمة النقل الذكية) هي حل جيد. لديها سنوات من الخبرة بنيت في

بعض نقاط البداية

نصائح أخرى

giveacodicetagpre.

هذا هو ما يصنعه TCP نفسه ، وضبطه خلال عقود أو اختبار شاق. يتم إجراء عن بُعد لمكالمات RPC الصغيرة ، وليس نقل الملفات الكبيرة. يجب عليك ببساطة استخدام مقبس TCP لنقل البيانات ، والسماح لبروتوكولات الطبقة السفلية بالقلق بشأن الكمون ، ونوافذ الإرسال ، MTU ، إلخ.

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