خسته نباشین
یک سورس سوکت نویسی جاوا دارم که سورس سرور با لوکال هاست ۱۲۷٫۰٫۰٫۱ درست جواب میده ولی وقتی ایپی اینترنتیم یا دی ان اس خودم رو وارد میکنم ارور میده چه طوری باید درستش کنم
سورس مربوط به سرور
Transfer a file via Socket - Real's Java How-to
و کد خودم
http://s9.picofile.com/file/8302363642/toxabsc9ej0tdzqwni7y.png
سوال تون سوال برنامه نویسی نیست، کدتون ایرادی نداره. روی یک شبکه داخلی با ip هایی مثل 192.168.1.10 مشکلی نیست ولی وقتی ارتباط میره روی اینترنت دیگه قضیه فرق می کنه.
مساله اینه، سرویس دهنده اینترنتی شما به مودم روتر شما یک IP اختصاص داده، مثلا 2.182.53.118 همون روتر مودم هم به کارت شبکه با سیم یا بی سیم کامپیوتر شما هم یک IP محلی تخصیص داده، مثلا 192.168.1.101
این IP که شما در اینترنت دارید اون چیزی نیست که شما فکر می کنید، با اون IP سرویس دهنده ارتباط رو تا روتر شما میرسونه، ولی روتر دلیلی نمیبینه که پیام رو به کامپیوتر شما که جزئی از شبکه داخلی ئه ارسال کنه. روتر نمیدونه که وقتی درخواستی روی پورت فلان بهش رسید منظور نهایی کامپیوتر شما است. اون خودش رو مقصد نهایی میدونه و از پیام روی اون پورت هم چیزی سر در نمیاره و نادیده اش میگیره.
شما باید Port Forwarding بکنید، یعنی به روتر تون بگید که درخواست هایی که روی پورت فلان بهت ارسال میشه رو Forward کن و بفرست به این کامپیوتر.
مربوط به کد نویسی و این انجمن هم نیست، جزو مباحث شبکه است و تنظیمات روتر. باید در تنظیمات مودم تون بخشی مثل Advanced Setup و داخلش Port Forwarding یا NAT و داخلش Virtual Server رو پیدا کنید و با تنظیم جدید بگید که روتر عزیز اگه پیامی بهت اومد که درخواست مربوط به Application فلان و روی پورت بهمان باشه، پیام مستقیما Forward بشه به فلان کامپیوتر محلی روی شبکه که IP محلی اش مثل 192.168.1.101 رو میدهید.