PDA

View Full Version : سوال: درخواست راهنمایی در مورد ارتباط درون شبکه



pooya1072
پنج شنبه 21 دی 1391, 19:36 عصر
با سلام
من در حال ساخت یک بازی فکری ساده تحت شبکه هستم.( که قراره تحت عنوان پروژه تحویل بدم.)
تمام قسمت های مربوط به متن بازی و منطق اون رو نوشتم . برنامه نویسی بخش شبکه اون رو هم تقریبا نوشتم .
این بازی قراره روی یک شبکه workgroup متشکل از 3 کامپیوتر یا بیشتر نصب بشه . روی هر یک از کامپیوتر ها یک نسخه از این برنامه نصب میشه . توجه کنید که کامپیوتر ها به هم متصل هستند و شبکه برقراره و مشکلی در این زمینه وجود نداره .
حالا مشکل بنده از این قراره :
فرض کنید می خواهیم روی یکی از کامپیوترها این برنامه رو نصب کنیم . بعد از نصب , چطور میشه که برنامه چک کنه که روی کدام یک از این کامپیوتر های عضو شبکه این بازی نصب شده و تعداد و ip اونها رو توی یک متغیر ذخیره کنه .
مثلا در اولین نصب از اونجایی که روی هیچ کدام از کامپیوترها این بازی نصب نشده عدد صفر ذخیره بشه . با نصب برنامه روی کامپیوتر دوم عدد یک و ip کامپیوتر اول ذخیره بشه و به همین منوال .
در حقیقت من می خوام با نصب این برنامه یک علامت توی شبکه ایجاد بشه و با نصب برنامه های دیگه این علامت توسط اونها گرفته بشه. من نمی خوام ارتباط رو به صورت دستی انجام بدم . می خوام هر برنامه با نصب به صورت خودکار به بقیه برنامه های نصب شده متصل بشه .

فرید نجفلو
پنج شنبه 21 دی 1391, 20:47 عصر
سلام
اولا که فقط نصب بودن کفایت نمینه باید برنامه در حال اجرا باشه
دوما روش ارتباط رو هم نگفتید ولی با توجه به این تاپیک شما (http://barnamenevis.org/showthread.php?377339)فرض رو بر ریموتینگ و همون روش میزارم
چون تو کدی که دادم یک برنامه هم کلاینته و هم سرور پیدا کردن همدیگه رو راحتتر می کنه
شما آی پی تمام سیستم های قبل دسترس تو شبکه رو می گیرید و با اون یه آدرس (URL) ارتباط می سازید (همون کاری که تو اون برنامه به صورت دستی و با تکست باکس کردم)
با هر آی پی که ارتباط برقرار شد یعنی برنامه نصب و در حال اجرا هست

نکته:
1-بهتره برای هر آی پی یا اگه زیاد بودن هر دسته (مثلا تقسیم 20 آی پی به 4 گروه 5 تایی) یک نخ (thread) ایجاد کنید تا سرعت برنامه بیشتر بشه
2- بهتره شناسایی هم دو طرفه باشه به این صورت که هر سیستمی تونست یه سیستم دیگه رو شناسایی کنه به طرف مقابل اعلام کنه که خودش (همونی داشت جستجو می کرد) رو در صورتی که تو لیستش نیست اضافه کنه (هم زمان همدیگه رو Add کنن
دلیل: اگه سیستم جستجو گر بعد از سیستم پیدا شده اجرا شده باشه سیستمی که پیشتر اجرا شده هنوز از آن لاین شدن اون با خبر نشده و سرچ بعدیش هم معلوم نیست
3-بعد از شناسای و اضافه شدن به لیست پنگ کردن سیستم های دیگه یادتون نره (آفلاین شدن)

pooya1072
پنج شنبه 21 دی 1391, 21:21 عصر
با تشکر مجدد
از اونجایی که هدف از این پروژه جهت آشنایی با Socket است اگه ممکنه توی این زمینه هم من رو راهنمایی کنید.

فرید نجفلو
پنج شنبه 21 دی 1391, 21:40 عصر
سوکت هم هم تقریبا همون
آی پی ها رو در میارین رو پورت خودتون واسه هر کدوم یه Listiner میزارین
حالا برای جسجتجو هر آی ی رو با اون پورت بررسی می کنید