برنامه نویسی

زندگی [2] – من می خواهم یک برنامه اشتراک گذاری فایل بسازم

این سریالی است که من در مورد زندگی روزمره خود به روز می کنم. شرکتی که من در آن کار می کنم هیچ مشتری جدیدی ندارد، بنابراین هیچ پروژه ای برای کار روی آن وجود ندارد. من قصد دارم این شرکت را به هر حال ترک کنم (اگر شما استخدام کننده هستید و می خواهید من را استخدام کنید به من ایمیل بزنید fadhilsaheer@gmail.com)، بنابراین می خواستم چیزی بسازم که بتواند چشمان استخدام کننده را جلب کند و مهارت های من را توسعه دهد.

این پست وبلاگ درک من در مورد فناوری های ذکر شده است، ممکن است اصلاحات زیادی انجام شود، در نظرات ذکر کنید، این به من کمک زیادی خواهد کرد.

من می خواهم یک برنامه اشتراک گذاری فایل بسازم 📂

متن نوشته

برای مدتی این ایده را داشتم که برنامه‌ای ایجاد کنم که بتواند فایل‌های مشابهی مانند Xender، airdrop و غیره را به اشتراک بگذارد. اما با سازگاری پشت به پشت با همه دستگاه‌ها. من فکر می کردم api مشابهی برای فناوری وجود دارد، اما اشتباه کردم 🏃

تحقیقات من

روش های مختلفی وجود دارد که می توانید فایل ها را بین دستگاه هایی به اشتراک بگذارید

  • دستگاه ها را از طریق وای فای وصل کنید
  • با بلوتوث و غیره، اما هر یک از آنها با یک تساوی همراه است، ارسال فایل ها از طریق وای فای سریع است، اما هر دو دستگاه باید در یک شبکه باشند. اتصال دستگاه ها بین بلوتوث آسان و سریع است، اما ارسال فایل بین آنها بسیار کند است.

بسیاری از نرم افزارهای موجود از بلوتوث برای کشف و اتصال و ارسال فایل ها از طریق وای فای استفاده می کنند.

این همان چیزی بود که من در ابتدا فکر می کردم، اما به نوعی سخت بود. فن آوری ها و پروتکل های مختلفی وجود دارد که باید به آنها توجه کرد

فکر اولیه من این بود که یک هات اسپات ایجاد کنم و با استفاده از یک دستگاه دیگر به آن هات اسپات متصل شوم و یک وب سرور روی دستگاه هات اسپات اجرا کنم و فایل ها را با استفاده از HTTP ارسال کنم.

حتی اگر این یک راه حل است، چه لذتی در آن وجود دارد؟ به هر حال می خواستم از محدودیت هایم عبور کنم.

بنابراین من یک نمونه اولیه ساده با استفاده از NFC (ارتباطات میدان نزدیک) ایجاد کردم، یک کتابخانه به نام libnfc وجود دارد، جعبه زنگ زدگی وجود دارد که برای libnfc اتصال داشت، بنابراین از آن برای ایجاد یک کشف اولیه و اتصال دستگاه استفاده کردم، اما ارسال فایل با آن غیرممکن است، بسیار کند است و فاصله بین دستگاه 4-10 سانتی متر است. و سرعت انتقال فقط تا 424 کیلوبیت بر ثانیه است حتی سرعت انتقال بلوتوث نیز حدود 1 مگابیت در ثانیه است و در BLE (بلوتوث کم انرژی) تا 24 مگابیت در ثانیه افزایش یافته است.

گزینه بعدی من استفاده از Wi-Fi Aware و Wi-Fi Direct بود که از اندروید، ویندوز و لینوکس پشتیبانی می کنند. اما اپل از آن پشتیبانی نمی کند. به طور دقیق، اپل فناوری دیگری به نام Apple Wireless Direct Link (AWDL) دارد که از آن برای airdrop، اشتراک‌گذاری وضعیت دستگاه بین دستگاه‌های اپل و غیره استفاده می‌کند. بنابراین آنها از فناوری‌های دیگر پشتیبانی نمی‌کنند، دقیقاً از Peer to Peer پشتیبانی نمی‌کنند. پشتیبانی از داده ها با دستگاه های دیگر مانند wi-fi direct انجام می دهد (حداقل این چیزی است که من از آن یاد گرفتم)

خوب حالا چه ؟

خوشبختانه من یک پست reddit پیدا کردم که در مورد نرم افزاری به نام Flying Carpet پس از سرهم کردن با آن اشاره می کرد، و با بررسی کد آن متوجه شدم چیزی به نام Wireless Ad hoc Network (WANET) وجود دارد، این یک نوع غیرمتمرکز شبکه بی سیم است که این کار را انجام نمی دهد. به روتر یا نقاط دسترسی بی سیم تکیه کنید.

Flying Carpet از وای فای موقت برای به اشتراک گذاری فایل استفاده می کند. اساساً یک شبکه Ad hoc در یک دستگاه ایجاد می کند و سایر دستگاه ها باید به صورت دستی به آن شبکه Ad hoc متصل شوند.

من قصد دارم از NFC برای اتصال و کشف دستگاه‌ها استفاده کنم (این تنها چیزی است که اپل و دیگران دارند). هر یک از دستگاه های متصل یک شبکه ad hoc ایجاد می کند و دستگاه دیگر آن را به طور خودکار با استفاده از NFC به آن متصل می کند.

این اساساً یک فرضیه است، مطمئن نیستم که آیا آن طور که من انتظار دارم کار می کند، یا به طور دقیق، من حتی مطمئن نیستم که آیا می توان از این طریق به آن دست یافت.

نتیجه

در هر صورت من می خواهم این برنامه را بسازم، اگر آنها می توانند این کار را انجام دهند، چرا من نتوانم؟ این پست وبلاگ ممکن است درست نباشد، اگر اصلاحاتی پیدا کنم آن را به روز می کنم. این چیزی است که من از یادگیری و تحقیق در این مورد در چند روز گذشته فهمیدم.

من پیشرفت را در پست های بعدی به روز می کنم، برای من آرزوی موفقیت کنید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا