View Full Version : ارسال همزمان چند فایل به سرور
seyed_farid
سه شنبه 19 اسفند 1399, 22:06 عصر
با سلام
من با استفاده از JTransfer اقدام به ارسال فایل به سرور میکنم.
الان میخوام با توجه به تعداد فایل جهت ارسال به سرور؛ کاری کنم که همه فایلها بصورت همزمان و پارالل به سرور ارسال بشن تا سرعت ارسال را ببرم بالا. ( دستور ارسال فایل، منتظر پایان ارسال قبلی نمونه)
برای اینکار ، من بنظرم اومد تعداد فایلها رو به سرور اعلام کنم و سرور هم بهمون تعداد بمن پورت اعلام کنه و من روی اون پورتها با استفاده از TDataTransmitter فایلها رو ارسال کنم.
میخوام با دریافت شماره پورتها ، در ران تایم با فانکشن یا پروسیجری بهمون تعداد بصورت همزمان TDataTransmitter ایجاد (Create) کنم و ارسال فایل کنم.
دوستان بزرگوار اگه تجربه همچین کاری دارند، و یا راه بهتری دارند خوشحال میشم بنده رو راهنمایی کنند.
Mask
پنج شنبه 21 اسفند 1399, 11:51 صبح
با سلام
من با استفاده از JTransfer اقدام به ارسال فایل به سرور میکنم.
الان میخوام با توجه به تعداد فایل جهت ارسال به سرور؛ کاری کنم که همه فایلها بصورت همزمان و پارالل به سرور ارسال بشن تا سرعت ارسال را ببرم بالا. ( دستور ارسال فایل، منتظر پایان ارسال قبلی نمونه)
برای اینکار ، من بنظرم اومد تعداد فایلها رو به سرور اعلام کنم و سرور هم بهمون تعداد بمن پورت اعلام کنه و من روی اون پورتها با استفاده از TDataTransmitter فایلها رو ارسال کنم.
میخوام با دریافت شماره پورتها ، در ران تایم با فانکشن یا پروسیجری بهمون تعداد بصورت همزمان TDataTransmitter ایجاد (Create) کنم و ارسال فایل کنم.
دوستان بزرگوار اگه تجربه همچین کاری دارند، و یا راه بهتری دارند خوشحال میشم بنده رو راهنمایی کنند.
کدتون رو بزارید.
seyed_farid
جمعه 22 اسفند 1399, 00:23 صبح
سلام.
ممنون از پاسختون.
من گشتم و یه چیزایی تو اینترنت پیدا کردم.
این فایل سرور و نیز سورس کلاینت هست.
این کدها با استفاده از ftp هست.
با دستور عادی ارسال میشه ولی وقتی از ترد استفاده میکنم انجام نمیشه.:ناراحت::افسرده:
seyed_farid
چهارشنبه 18 فروردین 1400, 12:26 عصر
دوستان کسی راهنمایی نداشت برا این مورد؟:قلب:
Delphi Coder
پنج شنبه 19 فروردین 1400, 01:06 صبح
من تا حالا همچین کاری نکردم ولی نکته ای که به ذهن میرسه این که شما میخواید برای بالا بردن سرعت اپلود چنین کاری بکنید یکم تصمیم دشواری هست. چون سرعت اپلود معمولا توی adsl های خانگی نهایت 50 کیلوبایت در ثانیه یا یخورده بالاتر هست. بیشتر برنامه های ftp هم تا اونجا که من دیدم یکی یکی ارسال میکنند یعنی احتمالا قضیه تاثیر گذاری روی سرعت با دانلود منیجر متفاوت هست. حالا این طرف داستان هم هزینه کمی برای پیاده سازی این مورد نمیکنید کد نویسی و باگهای احتمالی ممکنه اذیتتون کنه...
در مورد کد ارسالی شما یه ایرادی که همون لحظه اول به چشم میخوره از داخل ترد سعی شده در ایترفیس برنامه تغییرات ایجاد کنه مثلا یه چیزی به listbox اضافه میکنه و ... که این درست نیست و مشکل ایجاد میکنه. شاید مشکل اصلی این نباشه ولی این نحوه به روز رسانی فرم از داخل ترد قطعا اشتباه هست و اگر هم تو یکی دو بار اجرا چیزی نبینید ولی بالاخره این کد باگ درست میکنه..
seyed_farid
پنج شنبه 19 فروردین 1400, 12:02 عصر
سلام ممنون از توضیحات خوبتون :تشویق::قلب:
میشه درمورد دسترسی به اینترفیسهای فرم از درون ترد بیشتر راهنمایی و کمک بفرمائید و اگه نمونه ای دارید لطف کنید.:قلب:
Delphi Coder
یک شنبه 16 خرداد 1400, 01:35 صبح
توی گوگل سرچ کنید مطالب بیشماری برای این موضوع توی نت هست. معمولا بهتره یه لیست با یه criticalsection تعریف کنید و زمانی که داده ای داخل ترد میاد یا میخواید به فرم اضافه کنید لیست رو داخل ناحیه بحرانی اپدیت میکنید و به فرم مربوطه پیغام میفرستید تا داده ها رو بروز کنه و فرم هم دقیقا به همون شکل در داخل ناحیه بحرانی داده ها رو از لیست خارج میکنه و اینترفیس برنامه رو اپدیت میکنه..
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.