-
سه شنبه 08 تیر 1389, 19:15 عصر
#11
کاربر دائمی
نقل قول: ارسال فايل حجيم با indy
بله دقیقا این مشکل هست .
که من برای این کار از این روش استفاده کردم .
یک ارایه با طور ثابت(مثلا به طور حداکثر کانکشن هایی که میخوایم با TcpSrver باشه) در نظر میگیریم که قاعدتا هر کدوم یک اندیش دارن . ارایه میتونه از نوع TFileStream و یا MemoryStream باشه . و حتی میتونه اشاره گری باشه به یکی از این دو ساختار .
در مرحله اول که کلاینت اعلام میکنه میخوام برات فایل بفرستم داخل ارایه میگریده و اولین خانه nil رو پیدا میکنه و اندیس اون رو به کلاینت میفرسته . از این به بعد کلاینت در پکت های خود این اندیس رو جای میده و نتیجه سرور میفهمه مال کجاست.
در انتها هم که کارش تمام شد اون محلی که اختصاص داده شده رو free میکنیم. و خانه ارایه رو هم برابر nil قرار میدهیم .
این جوری طول ارایه کم نمیشه دیگه .
البته اگر هم بخواهیم خیلی نگران حافظه باشیم . میتونیم در هر بار که درخواست شد شی حافظه رو بسازیم و اشاره گر به اون رو به کلاینت پس بفرستیم .
قوانین ایجاد تاپیک در تالار
- شما نمی توانید تاپیک جدید ایجاد کنید
- شما نمی توانید به تاپیک ها پاسخ دهید
- شما نمی توانید ضمیمه ارسال کنید
- شما نمی توانید پاسخ هایتان را ویرایش کنید
-
قوانین سایت