ورود

View Full Version : ارتباط از طریق Wi-Fi



suraty
جمعه 22 خرداد 1394, 18:44 عصر
سلام، روز به خیر
اینجانب تصمیم بر نوشتن برنامه ای دارم که به ترتیب زیر عمل می نماید:
1- ابتدا فرستنده ای چند رشته را از طریق وای فای Broadcast می کند.
2- سایر دیوایس ها آن را دریافت و در پاسخ به آن، رشته ای را به فرستنده می فرستند.
3- فرستنده پس از دریافت آن رشته ها، نشانه ای را در پاسخ به تک تک دیوایس های پاسخ دهنده ارسال می کند و به عبارتی حضور آنان را مورد تایید قرار می دهد.
4- دیوایس های مورد تایید قرار گرفته نشانه را دریافت کرده و می توانند رشته ای را برای فرستنده ارسال کنند.
5- فرستنده داده ها را از تک تک آن ها دریافت می کند.
در واقع کل این سناریو عبارتست از یک همه پخشی و سپس تبادل داده بین فرستنده و سایر گیرندگان. یعنی ابتدا یک عملکرد همگانی صورت گرفته و پس از آن بین فرستنده و هر دیوایس پلی ارتباطی ساخته شود.
برای نوشتن برنامه کدهای زیادی را دیده و بررسی کرده ام که به نتایجی از قبیل: UDP Broadcast, Socket Programming, wifi hotspot, NSD, UDP Communication,... دست یافته ام. اما همچنان بسیار سر درگمم.
کدها را در چه رویدادی بنویسم تا بلافاصله پس از دریافت متوجه رسیدن داده شود؟
چگونه چند مقدار رشته ای را به تفکیک ارسال کنم؟
اصلا به زبان ساده چه کدی بنویسم؟
شرمنده از طولانی شدن سوال، اما امیدوارم راهنمایی ام کنید.

ali_72
شنبه 23 خرداد 1394, 07:24 صبح
سلام
سمت مقابل چه دیوایسی داری؟
مشابه این کار رو تو ویندوز و اندروید انجام دادم

این که گفتی :
کدها را در چه رویدادی بنویسم تا بلافاصله پس از دریافت متوجه رسیدن داده شود؟

مشکلت با استفاده از یک ترد و قرار دادن کد در یک حلقه حل میشه

و این که گفتی:
چگونه چند مقدار رشته ای را به تفکیک ارسال کنم؟

باید یه پروتکل برای تبادل داده داشته باشی که خودت مینویسی به خاطر همین گفتم سمت مقابل دیوایست چیه

این که گفتی:
اصلا به زبان ساده چه کدی بنویسم؟

تو بخش اندروید سوال پرسیدی خوب تو اندروید استادیو یه سمپل بنویس

بستگی به دیوایس سمت مقابلت هم داره
اگه سمت مقابل سخت افزار خاصی داری من شخصا معمولا اول از طریق خود ویندوز سخت افزار رو تست میکنم اگه سخت افزار من موفق بود تو سایر اپلیکیشن ها تستش میکنم
ارتباط از طریق wifi فقط 2 نکته داره انتخاب سرور و آیپی و شماره پورت

امیدوارم تونسته باشم کمکی کنم

suraty
شنبه 23 خرداد 1394, 10:45 صبح
خیلی ممنونم از راهنمایی تون. روشن و خوب تفهیم کردید.
هر دو طرف گوشی (اندروید) هستند. به نظرتون با پروتکل UDP می تونم برنامه رو بنویسم؟ با Eclipse کار می کنم و اگر همین پروتکل رو تایید می کنید دنبال نمونه هایی از این بگردم.
این چند وقت مثال هایی که با بلوتوث کار کرده دیدم اما بلوتوث محدودیت فاصله داره. چند نفر هم نمی تونن همزمان داده ارسال کنن. آیا با وای فای این مسائل حل میشه؟ اگر نه باید چه کرد؟
و اینکه فکر می کنم بدون مودم وای فای ایجاد و برقراری ارتباط در این برنامه میسر نیست، آیا صحیح است؟
بسیار متشکرم

ali_72
شنبه 23 خرداد 1394, 11:20 صبح
خوب wifi تا هر جایی برد داشته باشه همون میشه محدودیت فاصله ت.
فک کنم چیزی که مسلم هست اینه که شما باید یه شبکه داشته باشی و یه سرور و یه ip و یه شماره پورت
که بقیه بخوان اول به اون شبکه کانکت شن
تو شبکه دنبال ip مورد نظر بگردن و در نهایت درخواست کانکت به پورت مورد نظر اون سرور رو داشته باشن
من تو یه پروژه یه تبلت رو سرور قرار دادم ولی خوب با خاموش شدن تبلت دوباره باید شبکه ر روی تبلت میساختم که خیلی زود راه دیگه ای انتخاب کردم و ادامه ندادم
شما میتونی دنبال این قضیه باشی
روشی که انتخاب میکنی خیلی زیاد بستگی به کاری داره که انجام میدی
مثلا من ساخت شبکه رو به یه سخت افزار دارای وای فای واگذار کردم (لزومی نداره که فوری تنها گزینه ت مودم باشه)
من با بلوتوث کار نکردم چون به نظرم تکنولوژی هست که تقریبا داره منسوخ میشه و اینکه وقتی وای فای هست بلوتوث چرا
تو وای فای که با ارسال داده چند دیوایس مشکلی نداری