برنامه نویسی تحت شبکه

برنامه نویسی تحت شبکه

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

 

مدل سرویس گیرنده / سرویس دهند:

 

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

برنامه نویسی تحت شبکه

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

ارتباطات اتصال گرا در مقابل ارتباطات بدون اتصال:

 

سرویس گیرنده ها و سرویس دهنده ها اطلاعات را به دو روش مبادله می کنند: از طریق ارتباطات اتصال گرا (Connection-oriented) و ارتباطات بدون اتصال (Connectionless). در ارتباطات اتصال گرا باید جلسه ای بین سرویس گیرنده و سرویس دهنده ایجاد گردد. بدین ترتیب تحویل مطمئن و بدون خطای پیام ها در هر دو جهت تظمین می گردد و عمل تبادل اطلاعات با استفاده از TCP انجام می پذیرد.

ارتباطات اتصال گرا معمولاً در هنگامی که باید برای مدت زمانی طولانی مصل زمان دریافت یک فایل یا هنگام ارسال و دریافت یک Email، موجود باشد ایجاد می گردند. ارتباطات اتصال گرا برای برنامه های کاربردی جریان دار(Streaming) مثل جریان صوتی و ویدیویی نیز به کار می رود. ارتباطات بدون اتصال با استفاده از دیاگرام های UDP ایجاد شده و سربار (Overhead) جلسات را حذف می کند.

سرویس گیرنده و سرویس دهنده پیام ها را برای یکدیگر ارسال می کنند با این امید که آنها را به درستی دریافت کنند. اگر نتوانند پیام ها را دریافت کنند، برنامه خیلی تحت تأثیر قرار نمی گیرد. هنگامی که در برنامه های تحت شبکه، به سرعت نیاز باشد، حذف نمودن سربار جلسات از اهمیت زیادی برخوردار می گردد.

برنامه نویسی تحت شبکه

سوکت ها :

 

سوکت ها یک مکانیزم ورودی/ خروجی برای پیام های شبکه می باشد. هر برنامه شبکه برای برقراری ارتباط از یک سوکت استفاده می کند. در محیط ویندوز توابع شبکه از طریق Winsock API یا رابط برنامه نویسی کاربردی سوکت های ویندوز فراهم می شوند.برای استفاده از هر نوعی سوکت، مقدار دهی اولیه مشخصی (برای تنظیم ساختارهای داده گوناگون و سایر پارامترها) لازم می باشد که توسط فراخوانی اتوماتیک یک تابع به نام WSAStartup انجام می پذیرد.

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

در حالت غیر بلوکه اگر بسته ای موجود باشد برنامه آن را می پذیرد، ولی برای رسیدن یک بسته جدید متوقف نشده و منتظر نمی ماند و به اجرای خود ادامه می دهد. مقدار دهی اولیه سوکت های سرویس گیرنده و سوکت های سرویس دهنده کمی با هم متفاوت است. هر چند می توان از هر شماره پورتی بین ۰ تا ۶۵۵۳۵ استفاده کرد، ولی بهتر است که از شماره های بزرگتر از ۱۰۲۴ استفاده کرد تا از تداخل با پورت های مشهور اجتناب شود. وقتی کارمان با سوکت به اتمام رسید، باید آن را به درستی ببندیم. این کار با فراخوانی توابع زیر انجام می شود:

برنامه نویسی تحت شبکه

زبان های برنامه نویسی شبکه:

 

برنامه های کاربردی شبکه توسط یکی از چندین زبان برنامه نویسی نوشته می شوند. از جمله این زبان ها :

C/C++ ، C# ، Visual Basic ، Perl و جاوا

 

برنامه های کاربردی شبکه :

 

تمام برنامه های شبکه ای که در اینجا ارائه می کنیم بر روی ماشین هایی که جاوی Windows هستند کار خواهند کرد. هر برنامه به زبان Visual C/C++ نوشته شده است.

ـ سرویس دهنده Echo: یک برنامه کاربردی بدون اتصال است که به سادگی همان پیامی را که زا یک سرویس گیرنده دریافت نموده است را به آن باز می گرداند.

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

 

ماشین حساب آدرس CGI IP :

 

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

برنامه کاربردی CGI ماشین حساب IP برای تعیین این که آدرس IP به کار برده شده از چه کلاس می باشد، از Form داده خود استفاده می کند. ماشین حساب آدرس IP در دو نسخه موجود است. نسخه اول که IPCLASS نام دارد، داده Post شده از عنصر Form را برای تولید یک خروجی فقط ـ متنی استفاده می کند. نسخه دوم که IPCLASS نام دارد، خروجی HTML را با امکان قالب بندی WYSIWYG باز می گرداند.

 

روش های عیب یابی :

 

عیب یابی برنامه های تحت شبکه به زمان و تمرین نیاز دارد. در زیر نکاتی بیان شده که باید آنها را همواره به خاطر داشته باشید:

ـ هرگز هیچ فرضی را بر اساس عملکرد شبکه در نظر نگیرید. اتصال خود با سرویس دهنده را از طریق فرمان PING تست کنید تا از برقراری ارتباط مطمئن شوید. Ping می تواند از سمت سرویس گیرنده به سرویس دهنده و یا بالعکس باشد.

ـ اگر در اتصال سرویس گیرنده / سرویس دهنده تأخیر خیلی زیادی وجود دارد، با استفاده از فرمان TRACERT مسیر بین سرویس گیرنده و سرویس دهنده را تست کنید. وجود تعداد زیاد اتصالات می تواند در کارایی تأثیر داشته باشد.

ـ خواص شبکه را با بررسی پروتکل TCP/IP نصب شده تست کنید و مطمئن شوید که به درستی نصب و به کارت شبکه مقید شده باشند. بررسی کنید که مشکل به وجود آمده به سیستم عامل مربوط نباشد ( این موضوع در برخی از سیستم های عامل صادق است ولی در برخی صادق نیست.

ـ شماره پورت، آدرس IP و شماره نسخه Winsock را بررسی کنید و از درستی آنها مطمئن شوید. علاوه بر آن، برای تست یک برنامه سرویس گیرنده/ سرویس دهنده چند کامپیوتری باید شبکه شده باشند؟ در برخی از مواقع یکی کافی است. مثلاً سرویس گیرنده و سرویس دهنده Echo، سرویس گیرنده و سرویس دهنده Time و سرویس گیرنده و سرویس دهنده Tic-Tac-Toe همگی می توانند برروی یک ماشین اجرا شوند به شرط آن که پشته پروتکل TCP/IP نصب شده باشد.

 

نتیجه گیری :

 

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

 شرکت فناوران عصر شبکه آترا امیدواراست تا با انتشار مقاله برنامه نویسی تحت شبکه، گامی مؤثر در راستای شناخت شما عزیزان برداشته و شما را در راستای افزایش دانش IT  خود یاری نماید.

زبان های برنامه نویسی شبکه:

 

برنامه های کاربردی شبکه توسط یکی از چندین زبان برنامه نویسی نوشته می شوند. از جمله این زبان ها :

C/C++ ، C# ، Visual Basic ، Perl و جاوا

 

برنامه های کاربردی شبکه :

 

تمام برنامه های شبکه ای که در اینجا ارائه می کنیم بر روی ماشین هایی که جاوی Windows هستند کار خواهند کرد. هر برنامه به زبان Visual C/C++ نوشته شده است.

ـ سرویس دهنده Echo: یک برنامه کاربردی بدون اتصال است که به سادگی همان پیامی را که زا یک سرویس گیرنده دریافت نموده است را به آن باز می گرداند.

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

 

ماشین حساب آدرس CGI IP :

 

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

برنامه کاربردی CGI ماشین حساب IP برای تعیین این که آدرس IP به کار برده شده از چه کلاس می باشد، از Form داده خود استفاده می کند. ماشین حساب آدرس IP در دو نسخه موجود است. نسخه اول که IPCLASS نام دارد، داده Post شده از عنصر Form را برای تولید یک خروجی فقط ـ متنی استفاده می کند. نسخه دوم که IPCLASS نام دارد، خروجی HTML را با امکان قالب بندی WYSIWYG باز می گرداند.

 

روش های عیب یابی :

 

عیب یابی برنامه های تحت شبکه به زمان و تمرین نیاز دارد. در زیر نکاتی بیان شده که باید آنها را همواره به خاطر داشته باشید:

ـ هرگز هیچ فرضی را بر اساس عملکرد شبکه در نظر نگیرید. اتصال خود با سرویس دهنده را از طریق فرمان PING تست کنید تا از برقراری ارتباط مطمئن شوید. Ping می تواند از سمت سرویس گیرنده به سرویس دهنده و یا بالعکس باشد.

ـ اگر در اتصال سرویس گیرنده / سرویس دهنده تأخیر خیلی زیادی وجود دارد، با استفاده از فرمان TRACERT مسیر بین سرویس گیرنده و سرویس دهنده را تست کنید. وجود تعداد زیاد اتصالات می تواند در کارایی تأثیر داشته باشد.

ـ خواص شبکه را با بررسی پروتکل TCP/IP نصب شده تست کنید و مطمئن شوید که به درستی نصب و به کارت شبکه مقید شده باشند. بررسی کنید که مشکل به وجود آمده به سیستم عامل مربوط نباشد ( این موضوع در برخی از سیستم های عامل صادق است ولی در برخی صادق نیست.

ـ شماره پورت، آدرس IP و شماره نسخه Winsock را بررسی کنید و از درستی آنها مطمئن شوید. علاوه بر آن، برای تست یک برنامه سرویس گیرنده/ سرویس دهنده چند کامپیوتری باید شبکه شده باشند؟ در برخی از مواقع یکی کافی است. مثلاً سرویس گیرنده و سرویس دهنده Echo، سرویس گیرنده و سرویس دهنده Time و سرویس گیرنده و سرویس دهنده Tic-Tac-Toe همگی می توانند برروی یک ماشین اجرا شوند به شرط آن که پشته پروتکل TCP/IP نصب شده باشد.

 

نتیجه گیری :

 

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

 شرکت فناوران عصر شبکه آترا امیدواراست تا با انتشار مقاله برنامه نویسی تحت شبکه، گامی مؤثر در راستای شناخت شما عزیزان برداشته و شما را در راستای افزایش دانش IT  خود یاری نماید.

دیدگاه کاربران

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

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