أفضل وسيلة لإرسال ملفات كبيرة الحجم جدا هي تقطيع الملف المرسل إلى قطع صغيرة وإرسالها إلى الطرف الثاني قطعة قطعة ثم يقو م الطرف الثاني بتجميعها من جديد لأن إرسال ملف بحجمه الطبيعي تضيع معظم البيانات المرسلة في معظم الحالات مرات تسلم الجرة ويسلم الملف كاملا وبما إننا نحتاج في بعض الحالات إرسال ملف حجمه (1.5GB) وغيره من الأحجام فلا بد من استخدام وسيلة ما.!
فكيف تكون الطريقة لأسال ملف كبير الحجم........؟
لنفرض أن لدينا صورة حجمها (6794 byte ) وأن نضريه التقطيع لدينا تقطع الملف إلى أجزاء كل جزء (بلوك) حجمه ( byte 2048 ) على حدة وترسله وحده هكذا

تم يرسل البلوك الثاني ثم الثالث ثم يبقى جزء اقل من (2048 byte) سوف يرسله أيضا وحده ثم بعد اكتمال التسليم يقوم الطرف الثاني بتحويل البايتات المستلمة إلى ملف
فلنكون برنامجين منفصلين بشكل التالي احدهما للأرسال والأخر للأستلام

خطوات الإرسال والاستلام برمجيا .؟
1.يقوم المرسل بإرسال رسالة إلى المستلم تحوي حجم الملف وأسمه
2. يقوم المستلم بتكوين مصفوفة حجمها بحجم الملف المرسل حجمه وفتح قابلية الاستلام لدى المستلم الذي سيدخل في دوارة يضل يستلم إلى أن يكتمل الملف وإذا ضمن فترة لم يكتمل إرسال الملف أو حصل خطأ يخرج من الدوارة
3.يقوم المستلم بأرساغ رسالة إلى المرسل يخبره بأنه جاهز لاستلام البيانات إذا لم يكن مشغول أو يرسل مشغول إذا كان مشغولا
4. إذا أرسل المستلم رسالة انه جاهز للاستلام سيقوم المرسل بإرسال الملف جزء جزء وبنفس الوقت يستلم المستلم الملف جزء جزء
5.عندما يصبح حجم الملف المستلم مساويا للحجم الذي أرسل في بداية البرنامج يقوم المستلم بتحويل هذه البايتات إلى ملف ويحفظه بالاسم الذي أرسل إليه
حمل المثال من هنا
http://www.4shared.com/get/tmMP4_WY/send_large_file_by_TCP.html


