***برنامه ها***

دری رو به دنیای برنامه نویسی

***برنامه ها***

دری رو به دنیای برنامه نویسی

برنامه نویسی سوکت چیست ؟

پنجشنبه, ۱۶ بهمن ۱۳۹۳، ۰۹:۴۵ ب.ظ

شاید برای بسیاری از افرادی که به تازگی با برنامه نویسی آشنا شده باشند ، این سوال پیش بیاید که برنامه نویسی سوکت چیست و به چه معناست ؟ در ادامه بطور واضح مطالبی درباره برنامه نویسی سوکت خواهید دید .


برنامه هایی که نوشته می شوند ، اغلب نیازمند این هستند که با اینترنت ارتباط برقرار کنند و اطلاعاتی دریافت یا ارسال کنند . اما با چه کسی ؟
سرورها ، کامپیوتر هایی که خدماتی به شما ارائه میدهند ، به عنوان کامپیوتری که حاوی صفحات php,asp,python, دیتابیس ها و غیره هستند اطلاعات مورد نیاز شما را باید برای شما فراهم کنند . ارتباط بین دو کامپیوتر هم گاها از طریق ارتباط دو کامپیوتر، با کامپیوتر سرور برقرار میشود .
برای ارتباط بین کامپیوتر شما و سرور ( یا حتی دیگر کامپیوتر ها ) باید قوانینی وجود داشته باشد که به آن پروتکل میگویند .پروتکل اینکه پیغامی که برای سرور میفرستید به همان صورتی است که سرور بفهمد ، یا اینکه پیامتان را باید در چه زمانی بفرستید ، تکه تکه بفرستید یا کامل و ... را کنترل میکند .
 دو پروتکل معروف TCP و UDP در ابتدا پیام شما را کنترل میکنند که TCP به ارتباط دو طرفه و قابل اطمینان نظارت دارد ( مثل فرستاد یک پیام و گرفتن جواب ) و کنترل میکند که پیام به شما رسیده یا خیر ، و اگر نرسیده دوباره ارسال کند .
UDP ارتباط مطمئن را فراهم نمیکند و یک طرفه است و در ارتباطاتی استفاده میشود که پیام دو طرفه نیاز نیست ( مثل دیدن یک ومسابقه فوتبال زنده در اینترنت که اگر قسمتی از ویدیو نرسد ، ویدیو در آن قسمت ثابت میماند و از قسمت گم شده به بعد ویدیو ادامه پیدا می کند )

برنامه نویسی سوکت ، ارتباط بین یک برنامه در کامپیوتر شما و سرور از طریق TCP است . سوکت نیز نقطه-پایان ارتباط شما و سرور است . یعنی شما به سوکت اطلاعات را میدهید و از سوکت ارسال میشوند و در سوکت سرور دریافت و سرور از سوکتش اطلاعات را میخواند .
وقتی ارتباطی برقرار شد سرور شی سوکت خود را آخرین نقطه اتصال خود قبل از ارسال می سازد و کامپیوتر شما و سرور با نوشتن و خواندن در سوکت خودشان و ارسال اطلاعات درون سوکت ، ارتباط برقرار میکنند .

به عنوان مثال در زبان جاوا :
وقتی دو کامپیوتر از طریق TCP با هم ارتباط برقرار کنند ، اتفاقات زیر می افتد :

1- سرور یک شی ServerSocket ( یک کلاس از کتابخانه جاواست ) می سازد .
2-متد accept() را از همان کلاس فراخوانی می کند به این معنا که آماده ارتباط با هر کسی است که به او متصل شود .
3-کاربری که میخواهد ارتباطی با سرور برقرار کند ، یک شی  Socket میسازد و اسم سرور و پورتی که میخواهد به آن وصل شود ( برای هر نوع اتصالی باید به یک پورت خاص سرور وصل شد . مثلا برای ارتباط از طریق صفحات وب ، یعنی شما از صفحه وبی که روی سرور است استفاده کنید باید به پورت 80 وصل شوید )
4-متد () accepet سرور که تابه حال منتظر مانده به سوکت جدیدی از سرور که به سوکت کابر متصل است ، مراجعه میکند . پس از آن هر دو طرف می توانند اطلاعات را بصورت بایت هایی برای یکدیگر ارسال کنند که بایت ها تبدیل به متن ، صدا ، تصویر و غیره می شوند .

مثالی از یک کلاس سوکت و سرورسوکت در زبان جاوا در این لینک میبیند : مثال
موافقین ۰ مخالفین ۰ ۹۳/۱۱/۱۶
ر . کاف

نظرات  (۲)

عالی
دمت گرم 
خوب توضیح داده بودی

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی