وباکا

آموزش تخصصی برنامه نویسی وب

برنامه سازی شبکه با سی شارپ- 4# معرفی کلاس های مربوط به IP در سی شارپ

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

کلاس IPAddress

این کلاس در فضای نام System.Net قرار دارد. شی IPAddress برای نمایش یک آدرس IP منحصر بفرد است. این شی دارای متدهای مختلفی است. از جمله مهمترین این متدها متد Parse است.

متد Parse : این متد یک رشته را به یک IPAddress تبدیل می کند.نحوه استفاده از آن بصورت زیر است:

IPAddress ip=IPAddress.Parse(“1921.168.1.1”);

کلاس IPAddress همچنین دارای چند خاصیت فقط خواندنی است که هر کدام برای تعیین IP خاصی استفاده می شوند:

Any : برای نمایش آدرس های ip  در سیستم محلی استفاده می شود.

Broadcast : برای نمایش ip همه پخشی (پخش وسیع) در شبکه محلی استفاده می شود.

Loopback : برای نمایش ip  برگردان ( لوپ بک ) یا محلی استفاده می شود و مقدار آن 127.0.0.1 است.

None: هیچ ip برنمی گرداند

کدنویسان- کلاس IPAddess در سی شارپ

مثال زیر روش استفاده از کلاس IPAddress و متدها و خاصیت های آنرا بصورت کامل نشان می دهد:

کدنویسان - کلاس IPAddress در سی شارپکلاس IPHostEntry

از کلاس IPHostEntry در سیشارپ، برای بدست آوردن مشخصات میزبان مورد نظر استفاده می شود . با استفاده ازسه خصوصیت HostName, AddressList و Aliases از کلاس IPHostEntry می توان کلیه اطلاعات DNSی میزبان مورد نظر را مشاهده کرد.

  • با خاصیت HostName از کلاس IPHostEntry می توان به نامی که برای میزبان در DNS ثبت شده است دسترسی داشت.
  • با خاصیت AddressList از کلاس IPHostEntry که خروجی آن آرایه ای از نوع کلاس  IPAddress می باشد، می توان به IP هایی که در DNS برای میزبان ثبت شده است دسترسی داشت.
  • با خاصیت Aliases از کلاس IPHostEntry که خروجی آن یک آرایه رشته ای است، می توان به نام های مستعاری که در DNS برای میزبان مورد نظر ثبت شده است، دسترسی داشت.

مثال: در برنامه زیر با دادن iploopback می توان نام کامپیوتر را بدست آورد:

کدنویسان- کلاس iphostentry در سی شارپ

 

 

کلاس IPEndPoint

کلاس IPEndPoint در سی شارپ  روشی برای تعریف یک گره در شبکه با تلفیق یک IP و یک شماره پورت ارائه می کند. به ترکیب شماره IP  و شماره پورت اصطلاحاً نقطه انتهایی (end point) می گویند. هنگامي که بخواهيد سوکتي را به آدرسIP بخصوصي مقيد کرده يا بين سوکت يا آدرس IP ديگري ارتباط برقرار کنيد، نمونه اي از اين شي ايجاد کرده و از آن در فراخواني ها استفاده مي کنيد. فرم کلي استفاده از اين کلاس به شکل زير است:

IPEndPoint(IPAddressaddress,intport)

پارامتر اول، نمونه اي از شي و پارامتر دوم شماره پورت اتصال را مشخص مي کند. نحوه استفاده از آن در مثال زیر آمده است:

کدنویسان - ایجاد نقطه انتهایی در سی شارپ

در مثال زیر از کلاس های معرفی شده در این جلسه استفاده شده است:

کدنویسان - استفاده از کلاس های ip در سی شارپ

خروجی قطعه برنامه فوق بصورت زیر خواهد بود:

کدنویسان - کار با کلاس های ip در سی شارپ

ساخت سوکت

در اين زمينه، فضاي نام System.Net.Sockets ،کلاس Socketرا براي استفاده در برنامه هاي تحت شبکه در اختيار برنامه نويسان قرار داده است. که سازنده کلاس Socket به شکل زیر است:

Socket نام دلخواه = new Socket(AddressFamily …,Socketype …,ProtocolType …)

پارامتراول در فرم فوق، “نوع شبکه” و پارامتر دوم “نوع اتصال” و پارامتر سوم “پروتکل ارتباطی” را تعیین کرده که تمامی پارامترهای این ساختار از نوع شمارشی (عددی) می باشند. باید توجه داشته باشید که به هیچ عنوان اجازه ترکیب پارامترهای دوم و سوم را نداشته و برای هرSocketType، می بایست از یکProtocolType ویژه استفاده کنید. ضمناً فراموش نکنید که برای استفاده ProtocolType با مقدارStream، مقدار ProtocolType را به Tcp تنظیم نمایید.

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

انتخاب نوع سوکت ارتباطی

اساساً سوکت ها را به دو بخش اتصال گرا (Connection-Oriented) و بدون اتصال (Connection-Less)می توان تقسیم بندی کرد.

در سوکت های اتصال گرا مانند TCP، برای مبادله داده ها بین دو ماشین، حتماً باید پیشتر، اتصالی برقرار شده باشد. اما در سوکت های بدون اتصال مانند UDP، نیازی به برقراری اتصال نبوده و در عوض، به ازای هر بار ارسال داده به ماشین دیگر، آدرسIP ماشین مقصد می بایست مشخص شود.

برای IP نرمال باید از مقدار AddressFamily.InterWork استفاده کرد که منظور IP Version 4  میباشد.

پارامترهای سوکت

کدنویسان - پارامترهای تابع سازنده کلاس سوکت در سی شارپ

در این مثال یک سوکت از نوع بدون اتصال ایجاد شده است:

Socket  s= Socket (addressfamily.interNetwork , socketType.dgram, protocoltype.Udp);

و در مثال زیر هم یک سوکت از نوع اتصال گرا ایجاد شده است:

Socket  s= Socket (addressfamily.interNetwork , socketType.Stream, protocoltype.Tcp);

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطالب