ورود

View Full Version : سوال: مشکل در Socket Programing



spiderman200700
چهارشنبه 20 اردیبهشت 1391, 20:18 عصر
سلام دوستان.
سلام دوستان من با استفاده از Socket ، یه برنامه ی کلاینت سروری نوشتم. و همانطور که همه میدونید برای ارتباط با سرور به IP سیستم سرور نیاز داریم.
توی سیستم هایی که مستقیما یه IP معتبر میگیرن و به اینترنت وصل میشن(مثل اشتراک Dialup) مشکلی وجود نداره.
ولی توی سیستم هایی که با استفاده از IP معتبر به اینترنت وصل نمیشن و از IP سرورشون برای اینکار استفاده میکنن(مثل اشتراک ADSL) ، و خودشون فقط یه IP در شبکه ی داخلی دارن ، مشکل وجود داره. و مشکل اینه که وقتی سیستم سرور با استفاده از مودم ADSL به اینترنت وصل میشه، برنامه ی سمت کلاینت به IP مودم سرور دسترسی داره ، نه به IP سیستم سرور.
حالا سوال من اینجاست در اینگونه مواقع در برنامه ی سمت کلاینت، IP سرور رو چی یا چطوری ست کنم که کلاینت رو به سیستم سرور وصل کنه ، نه به مودم سرور.

- همونطور که گفتم فرض بر اینه که سیستم کلاینت از طریق اینترنت میخواد به سیستم سرور وصل بشه و سیستم سرور با یه IP نامعتبر و به صورت غیر مستقیم با استفاده از IP مودم ADSL خودش از اینترنت استفاده میکنه.

ممنون میشم که کمکم کنید. با تشکر:لبخندساده:

joker
پنج شنبه 21 اردیبهشت 1391, 16:33 عصر
چندتا راه داري
اول بايد آي پي سرور هميشه ثابت و معتبر_valid باشه كه با دادن كمي بيشتر پول به سرويس دهنده اينترنت ميتونيد يك آي پي ثابت هميشگي داشته باشيد
راه دوم استفاده از سرور سوم به عنوان يك رابط هميشگي روي بستر اينترنت هست ( مثلا يك VPS اجاره كنيد )
راه سوم شما اي پي استاتيك نداريد ميتونيد با استفاده از Port Forwarding آي پي مودم را مستقيم فوروارد كنيد روي آي پي داخلي سرور ( توي گوگل همين عنوان را سرچ كن )
البته در اين صورت بايد يك برنامه رابط هم بنويسي كه موقع قطع شدن ارتباط مودم و تغيير آي پي ، اي پي جديد را به كلاينت اعلام كنه ( نياز به سرور ثابت روي اينترنت )

spiderman200700
پنج شنبه 21 اردیبهشت 1391, 19:22 عصر
ممنون از جوابتون.
امیدوارم بتونم از Port Forwarding مشکلمو حل کنم.
تشکر از شما