برنامه سازی شبکه با سی شارپ- 5# ایجاد یک برنامه کلاینت/سرور اتصال گرا (TCP) با سوکت ها در سی شارپ

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

در این جلسه با ساختار و مراحل ایجاد یک برنامه اتصال گرا (TCP) با استفاده از سوکت در سی شارپ آشنا می شوید. و نمونه برنامه های قابل اجرا را خواهید دید.

قبل از اینکه بتوان یک برنامه اتصال گرا با استفاده از سوکت نوشت، نیاز هست که با متدهای زیر آشنا شویم.

الف) استفاده از متد Bind

از متد Bind برای مقید کردن سوکت به یک آدرس در شبکه استفاده می شود و روش اجرای آن بصورت زیر است :

Bind(EndPoint  address );

ب) متد Listen

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

Listen( int backlog);

backlog یک عدد صحیح است تعداد ارتباطاتی که در صف انتظار برای یک سرویس هستند را تعیین می کند.

ج) متد Accept

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

د) متدهای Send و Receive

بعد از اینکه Client تقاضای یک ارتباط را داد، Client و Server میتوانند شروع به انتقال اطلاعات نمایند. متدهای Receiveو Send برای ارسال و دریافت اطلاعات استفاده میشوند.

ه) متد Close :

پس از پایان یافتن ارتباط، سوکت باید Close شود.

مراحل اجرای متدهای سوکت

مراحل ایجاد یک برنامه سمت سرور بصورت اتصال گرا (TCP) با استفاده از سوکت  بصورت زیر است:

  1.  ایجاد سوکت با استفاده از کلاس Socket
  2.  مقید کردن(تخصیص)سوکت به یک کارت شبکه (آدرسIP معین) با استفاده از متد Bind
  3.  گوش دادن به درخواست ها با استفاده از متد Listen
  4.  پذیرش درخواست ها برای برقراری اتصال با استفاده از متد Accept
  5.  مبادله داده ها با استفاده از متدهای Send و  Recieve
  6.  پایان دادن به ارتباط و بستن سوکتبا استفاده از متد Close

 

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

برنامه سمت سرور بصورت زیر است:

کدنویسان - برنامه نویسی سوکت - سرور

 

برنامه سمت کلاینت بصورت زیر است:

 

کدنویسان - برنامه نویسی سوکت - برنامه کلاینت

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

در این مثال برای این تبدیل ها از کلاس ASCII از فضای نامی ASCIIEncoding استفاده شده است. متد GetString ، آرایه بایت را گرفته و به رشته تبدیل می کند و متد Getbytes رشته را گرفته و به آرایه ای از نوع بایت تبدیل می کند.

برچسب ها

,

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


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


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

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

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


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