ما هي أفضل طريقة لإرسال الملفات عبر الشبكة باستخدام C# ؟

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

سؤال

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

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

المحلول

يجب أن ننظر إلى ثنائي التسلسل و إرساله عبر TCP socket.

تفسير جيد على أنواع مختلفة من التسلسل:

http://www.dotnetspider.com/resources/408-XML-serialization-Binary-serialization.aspx

جيد التمهيدي على TCP العميل/الخادم في C#:

http://www.codeproject.com/KB/IP/tcpclientserver.aspx

نصائح أخرى

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

أنا أعرف بعض الناس يفضلون قاعدة 64 سلاسل بدلا من بايت[].ليس متأكدا مما إذا كان من المسائل.

ما رأيك باستخدام HTTP أو FTP ؟ كانت نوعا من أجل هذا.

اليكس

اعتمادا على حيث كنت تقوم بإرسال الملف إلى, قد ترغب في إلقاء نظرة على WebClient.UploadFileAsync و WebClient.UploadFile.

لن باستخدام HTTP أو FTP على ملف واحد هو الكثير من النفقات العامة و الكثير من التعليمات البرمجية, خصوصا وجود بسيطة TCP خادم تقريبا بالفعل بالنسبة لك في C#.

مآخذ قد يكون الطريق الأفضل إذا كنت مجرد الاضطرار إلى القيام بذلك عبر الشبكة.إذا كنت تستخدم TCP, يمكنك الحصول على موثوقية الاتصالات ولكن تأخذ تأثير على السرعة.إذا كنت بحاجة إلى أداء أعلى ، قد تتمكن من محاولة استخدام UDP بدلا من ذلك.ولكن الجانب السلبي UDP هو أن تسليم الحزمة والنظام ليست مضمونة ، لذلك سوف تحتاج إلى كتابة كل ما السباكة نفسك.

إذا كنت بحاجة إلى نقل الملفات عبر شبكة الإنترنت نفسها (برمجيا, و إذا كان لا يمكنك استخدام بروتوكول نقل الملفات) ، ثم خدمة ويب النهج عبر MTOM قد تناسب احتياجاتك.

إذا كنت بناء على أعلى من نظام التشغيل Windows Server 2003 R2 أو Windows Vista أو Windows Server 2008 والقيام الشبكة الداخلية النقل ، وثمة خيار آخر هو الرافعة المالية الجديدة بعد التفاضلية ضغط الميزة.هذا ليس فقط يقوم بعمل جيد حقا في ضغط الملفات لتقليل حركة مرور الشبكة ، ولكن أيضا استخدامها مباشرة من قبل النسخ المتماثل DFS.الجانب السلبي (كما .NET developer) إنه COM+ التكنولوجيا.

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