برنامه سازی شبکه با سی شارپ- 1# آشنایی با مفاهیم اولیه سوکت و انواع ارتباط

برنامه سازی شبکه در سی شارپ

برای کسب توانایی در ساخت برنامه هایی که بتوانند تحت شبکه و استاندارد های موجود برای ساخت شبکه کارکنند نیاز است اطلاعات مقدماتی در مورد شبکه های کامپیوتری کسب کنید .

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

در این جلسه به توضیح چگونگی عملکرد و دستورات پروتکل های مهم ارتباطی که در سطح وسیع برروی شبکه جهانی اینترنت و شبکه های بر مبنای مدل IP/TCP استفاده می شوند می پردازیم.

خوانندگان عزیز توجه داشته باشند که دانستن مطالب ارائه شده در این جلسه و جلسه بعد برای یک برنامه نویس شبکه الزامی است و نداشتن اطلاعات کافی در مورد مبنا و طریقه کار کردن پروتکل ها ممکن است موجب شود که در درک مطالب بعدی با مشکل مواجه شوید.

سوکت(Socket ) چیست؟

با یک بیان ساده می توان گفت که سوکت به ترکیب یک آدرس ماشین (IP) و یک شماره درگاه (Port)گفته می شود. در این تعریف اصطلاحاتی وجود دارد که ممکن است معنای آن را به درستی درک نکنید ولی در ادامه همین فصل به طور کامل با این مفاهیم آشنا خواهید شد.

در برقراری ارتباط بین کامپیوتر ها در یک شبکه دو چیز بسیار مهم است:

۱ – آدرس ماشینی که می خواهیم اطلاعاتی از ان بگیریم یا به آن ارسال کنیم

۲-  برنامه ای از آن ماشین که در خواست اطلاعات کرده یا اینکه می خواهیم اطلاعاتی از آن برنامه کسب کنیم

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

سوکت های برکلی

IP/TCP  برای اولین بار درسیستم عامل یونیکس معرفی شد و در نگارش های بعدی این سیستم عامل که توسط دانشگاه برکلی توسعه پیدا کرد ، یک رویه برنامه نویسی نیز همراه IP/TCP ارائه شد تا کاربران بتوانند به وسیله آن برنامه های تحت شبکه با استفاده از این پشته پروتکلی ایجاد کنند. این رویه برنامه نویسی به صورت استاندارد برای برنامه نویسی شبکه درآمد و بقیه زبان های توسعه و سیستم عامل نیز از این استاندارد برای پشتیبانی از برنامه نویسی شبکه استفاده کردند.

WinSock چیست؟

WinSock یا Socket Windows یک واسط ( InterFace ) برنامه نویسی است که در غالب یکLibrary Link Dynamic   یا DLL  در سیستم عامل ویندوز برای برنامه نویسی شبکه و ساخت برنامه هایی که بتوانند با شبکه محاوره داشته باشند معرفی شده است از آنجایی که این کتابخانه به صورت استاندارد جهانی ساخت برنامه های شبکه ، ساخته شده است بنابرین در این کتاب مبنای آموزش بر روی این رویه ( WinSock ) قرار داده شده است.

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

اکنون که با اصطلاحاتی در زمینه برنامه نویسی شبکه آشنا شدید احتمالا سوالاتی در ذهن شما به وجود آمده که برای پیدا کردن پاسخ آن نیاز است که با مفاهیم پایه شبکه آشنا شوید. پس به توضیح این مبانی در قالب مدل مرجع OSI که یک مدل استاندارد برای ساخت شبکه های کامپیوتری است می پردازیم.

لایه ها

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

در این الگو وظایف مرتبط با هم بر عهده یک بخش گزارده شده است و هر بخش تشکیل یک لایه مجزا را داده است. لایه ها در این مدل به صورت پشته بر روی هم گذاشته شده اند و هر لایه فقط می تواند با لایه های مجاور خود در ارتباط باشند.

تعریف پروتکل

در دو کامپیوتر که بوسیله شبکه به هم متصل می شوند هر لایه با لایه هم سطح خود توافقی برای انجام عملیات دارد به این توافق بین لایه ها پروتکل گویند. خدماتی که یک لایه به لایه بالاتر می دهد ممکن است به یکی از گونه های زیر باشد:

  • درخواست سرویس (Request)
  • اقدام لازم برای انجام سرویس (Introduction()
  • ارسال پاسخ سرویس (Response)
  • قبول درخواست (Confirm)

 

 انواع ارتباط لایه های متناظر در دو کامپیوتر

ارتباط مابین دو کامپیوتر می تواند به یکی از دو صورت زیر باشد:

  • اتصال گرا (Connection Oriented)
  • غیر اتصال گرا(Connection Less)

در سیستم اتصال گرا ابتدا درخواست اتصال ارسال شده و در صورت موافقت طرف مقابل ارتباط برقرار می شود ( مثل چیزی که در سیستم تلفن وجود دارد ) به این سیستم Stream Data نیز گفته می شود. اما در سیستم غیر اتصال گرا بدون نیاز به موافقت طرف مقابل بسته ها ارسال می شوند ( مانند سیستم پست) به این سیستم Datagram می گویند.

برچسب ها

,

محصولات پیشنهادی


نظرات کاربران


نظرات برای آموزش برنامه سازی شبکه با C# | بدون نظر »

کاربر عزیز، لطفاً دیدگاه ارزشمند خود را از طریق فرم زیر برای ما ارسال کنید:

درباره کدنویسان
آکادمی کدنویسان جهت کمک به دانشجویان رشته های کامپیوتر و فناوری اطلاعات و همه علاقمندان به طراحی و برنامه نویسی برای ویندوز، وب و موبایل ایجاد شده است.
بیشتر آموزش های سایت کدنویسان، بصورت رایگان ارائه شده است و بعضی بسته های آموزشی تصویری و نیز نرم افزارهای پیاده سازی شده در ازای پرداخت، قابل دانلود هستند.
هر گونه نظر، انتقاد یا پیشنهادی در مورد مطالب یا عملکرد کدنویسان دارید، حتما با ما در میان بگذارید.
نمادهای اعتماد ما


تماس با ما
  • شماره همراه : ۰۹۱۵۱۶۰۴۰۶۸
  • آی دی تلگرام : @mmoha94
  • پست الکترونیکی : mohammadi.sm@gmail.com
  • آدرس پستی : بیرجند، خیابان پیروزی، پیروزی ۹، پلاک ۲۸
کلیه حقوق متعلق به سایت کدنویسان است، انتشار و کپی برداری از مطالب این سایت غیرمجاز بوده و پیگرد قانونی دارد.