PDA

View Full Version : سوال: سوکت پروگرمینگ در اینترنت



MAZAHER70
پنج شنبه 20 بهمن 1390, 11:39 صبح
سلام بر همه.
راستش این برنامه چتی که با c# مینویسن فقط تو lan میشه ازش استفاده کرد.
اگه بخوایم تو اینترنت ازش استفاده کنیم چطوریه؟

مثلا اگه برنامه سرور تو شهر A و کلاینت تو شهر B باشه می شه با دادن آدرس ip و پورت سرور به کلاینت میشه از طریق اینترنت با هم چت کرد؟
مثله yahoomessenger

crazy_1892
پنج شنبه 20 بهمن 1390, 13:15 عصر
http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE

MAZAHER70
پنج شنبه 20 بهمن 1390, 14:26 عصر
اگه میشه یه خورده واضح تر بگین.
من اگه بخوام تو شبکه اینترت دو تا سیستم با هم چت کنن از چه روشی باید استفاده کنم.
ممنون.

Esmail Solhkhah
پنج شنبه 20 بهمن 1390, 16:15 عصر
وقتی صحبت از سوکت پروگرمینگ میشه بصورت خیلی ساده یعنی ارسال و دریافت داده با استفاده از سوکت

حالا سوکت چیه

بصورت خیلی ساده

آدرس IP تو شبکه به منزله آدرس یه آپارتمان هستش که تشکیل شده از استان و شهر و خیابان و کوچه و شماره ساختمان

برای اینکه ما بتونیم یه پیامی (یا نامه ای) رو به منزل شخصی تو اون آپارتمان بفرستیم علاوه بر آدرس آپارتمان به

یه پارامتر دیگه هم نیاز داریم و اون شماره پلاک منزل مقصد تو آپارتمان هست

آدرس آپارتمان اینجا میشه IP Address و شماره پلاک منزل شخص تو آپارتمان میشه Port

پورت ها رو میشه به دو حالت ورودی و خروجی یا دو طرفه تنظیم کرد

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

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

و این وظیفه فایروال تو شبکس که تو مثال ما میشه نگهبان آپارتمان که رفت و آمد نامه ها رو به و از منزل شما کنترل میکنه

ترکیب آدرس IP + Port میشه یه سوکت حالا اگه با TCP باشه میشه سوکت TCP و اگه با UDP باشه میشه سوکت UDP

هر کامپیوتری تو شبکه معمولا دارای یک آدرس IP هست حالا چه این شبکه Lan باشه یا WAN یا Internet یا Intranet یا هر کوفت و زهر مار دیگه

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

تو یه شبکه معمولی WorkGroup همه کامپیوترها معمولا آدرس IP شون دستی تنظیم میشه

گفتم معمولا بخاطر اینکه بحث DHCP SERVER رو فعلا نمیکنیم

مثلا شما دو تا کامپیوتر تو این شبکه دارید و میاید و بصورت دستی IP براشون اختصاص میدید

اینجا اگه شما تنظیمات شبکه رو درست انجام داده باشید باید کامپوترهاتون بتونن همدیگه رو Ping کنن

اگه Ping کردن شما میتونید سوکت پروگرمینگ رو بین کامپیوترها داشته باشید.


تو شبکه هایی که دارای Domain Controller هستن هم دستان به این صورته که معمولا رو سرور یه سرویس دهنده داریم (DHCP SERVER)

که میاد و به کلاینتها IP اختصاص میده و کار ما رو تو تخصیص IP راحت میکنه

وقتی شما یه بار به سرور کانکت شدید یه IP به شما اختصاص میده و وقتی دیس شدید و دوباره کانکت شدید احتمال قوی

یه IP دیگه بهتون اختصاص میده مثل همین کانکشن هایی که به اینترنت داریم (Dial Up - ADSL , ... )

چرا وقتی شما دیس میشید و دوباره کانکت میشید IP تون عوض میشه ، بخاطر وجود همین DHCP سرورها تو شبکه

میشه IP ثابت هم داشته باشیم.



تو سوکت پروگرمینگ یه موردی که پیش میاد اینه که این وسط فایروال سیستم عامل میاد و جلوی ترافیک های ورودی رو میگیره

برای این کار باید شما پورتی رو که تو سوکت پروگرمینگ استفاده کردید باز کنید (لیست Exception های فایروال رو ببینید)



مطابق بحثی که شد اگه شما بخاید نامه ای رو به یه منزل بفرستید که موقعیتش ثابت نیست (مثال) چی پیش میاد ، طبیعیه که به مقصد نمیرسه

و اینجاس که شما میگید :


راستش این برنامه چتی که با C#‎‎ مینویسن فقط تو lan میشه ازش استفاده کرد.پس دقت کنید یا IP سرورتون باید ثابت باشه یا تو برنامتون این موضوع رو درنظر بگیرید. (میتونید از یه واسط کمک بگیرید)

بحث مهم دیگه رو هم باز بالا اشاره کردم شما باید پورت مورد استفاده رو باز کنید (تنظیمات فایروال)

موفق باشید.