توضیحات

توجه : به همراه فایل word این محصول فایل پاورپوینت (PowerPoint) و اسلاید های آن به صورت هدیه ارائه خواهد شد

  مقاله در مورد مفهوم سوكت و پورت و آدرس تحت pdf دارای 20 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است

فایل ورد مقاله در مورد مفهوم سوكت و پورت و آدرس تحت pdf  کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه  و مراکز دولتی می باشد.

توجه : در صورت  مشاهده  بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله در مورد مفهوم سوكت و پورت و آدرس تحت pdf،به هیچ وجه بهم ریختگی وجود ندارد


بخشی از متن مقاله در مورد مفهوم سوكت و پورت و آدرس تحت pdf :

مفهوم سوكت و پورت و آدرس

اصلی ترین عامل در یك ارتباط شبكه سوكت ( soket ) نامیده می شود . سوكت در دانشگاه بركلی ، كالیفرنیا ، و برای سیستم عامل یونیكس اختراع شد . سوكت اختراع شد تا ارتباطات شبكه را به عملیات خواندن / نوشتن فایل نزدیك كند . با آن كه سوكت از آن موقع تاكنون پیشرفت هایی كرده ولی اساس آن ثابت مانده است .

در عصر ویندوز X/3 ، كه هنوز كاركردهای شبكه جزء ذاتی سیستم عامل نشده بود ، شركت های زیادی پروتكل های لازم برای ارتباطات شبكه را عرضه می كردند ، كه تفاوتهایی با یكدیگر داشتند . در نتیجه هر شركت باید مجموعه ای كامل از نرم افزارهای شبكه را ارائه می كرد . این وضع خوشایند اكثر برنامه نویسان نبود . بنابراین تمام شركتهایی كه این زمینه كار می كردند ( از جمله میكروسافت ) تصمیم گرفتند یك مجموعه ای توابع برنامه نویسی ( API ) برای سوكت های ویندوز ( Winsock ) داشته باشند . بدین ترتیب تمام برنامه نویسان می توانستند از یك سری توابع سازگار برای انجام ارتباطات شبكه استفاده كنند .

برای كار با فایل به یك شیء Cfile نیاز داریم . پیام های شبكه هم وضع مشابهی دارند چون برای خواندن / نوشتن آنها به یك سوكت نیاز هست ، با این تفاوت كه باز كردن یك سوكت نیاز به اطلاعات متفاوتی دارد . برای باز كردن یك فایل باید نام و مسیر آن را بدانیم . برای باز كردن یك سوكت باید نام كامپیوتری كه گوش بزنگ است و پورتی ( Port ) كه به آن گوش می دهد را بدانیم . در واقع نام كامپیوتر معادل شماره تلفن و پورت معادل شماره داخلی مورد نظر است . پورت ها برای تغییر مسیر ارتباطات شبكه هستند . به شكل زیر نگاه كنید .

شكل : پورت ارتباط شبكه را به مسیر درست هدایت می كند .
برای ارتباط با یك برنامه دیگر شبكه باید پورت آن را هم بدانید . اگر آدرس كامپیوتر و پورت را اشتباه كنید ممكنست به برنامه دیگری وصل شوید ، یا اینكه اصلاً به جایی وصل نشوید ( درست مثل گرفتن یك شماره تلفن عوضی ) .

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

انواع سوكت و مفاهیم آنها
اگر بخواهیم از نظر اهمیت انواع سوكت را معرفی كنیم دو نوع سوكت بیشتر وجود ندارد . ( انواع دیگری هم هستند ولی كم اهمیت ترند ) . این دو نوع سوكت عبارتند از :
. سوكتهای نوع استریم كه سوكتهای اتصال گرا نامیده می شود .
. سوكتهای نوع دیتاگرام كه سوكتهای بدون اتصال نامیده می شود .
اگر عادت به پیش داوری دارید برای تمایز بین مفهوم این دو نوع سوكت . تفاوت

بین مفاهیم ارتباط نوع TCP و UDP را مدنظر قرار بدهید . روش ارسال برای سوكتهای نوع استریم همان روش TCP است و بنابراین داده ها با رعایت ترتیب و مطمئن با نظارت كافی بر خطاهای احتمالی مبادله می شوند . سوكتها نوع دیتاگرام نامطمئن است و هیچگونه تضمینی در ترتیب جریان داده ها وجود ندارد .
اكثر خدمات و پروتكلهائی كه در لایه چهارم تعریف شده اند نیازمند حفظ اعتبار و صحت داده ها و همچنین رعایت ترتیب جریان داده ها هستند . بعنوان مثال پروتكل انتقال فایل ( FTP ) ، پروتكل انتقال صفحات ابرمتن ( HTTP ) یا پروتكل انتقال نامه های الكترونیكی ( SMTP ) ه

مگی نیازمند برقراری یك ارتباط مطمئن هتند و طبعاً از سوكتهای نوع استریم بهره می برند .
همانگونه كه قبلاً در مورد پروتكل TCP آموختیم پروتكلی است كه داده ها را با رعایت ترتیب و خالی از خطا مبادله می نماید و پروتكل IP كه در لایه زیرین آن واقع است با مسیر یابی بسته ها روی شبكه سروكار دارد . سوكتهای نوع استریم دقیقاً مبتنی بر پروتكل TCP بوده و طبیعتاً قبل از مبادله داده ها باید یك اتصال به روش دست تكانی سه مرحله ای برقرار بشود .

سوكتهای نوع دیتاگرام مبتنی بر پروتكل UDP است و بدون نیاز به برقراری هیچ ارتباط و یا اتصال ، داده ها مبادله می شوند و بنابراین تضمینی بر رسیدن داده ها ، صحت داده ها و تضمین ترتیب داده ها وجود ندارد ولی باتمام این مشكلات باز هم در برخی از كاربردها مثل انتقال صدا و تصویر یا سیستم DNS كه قبلاً آنرا بررسی كردیم مورد استفاده قرار می گیرد . تنها حسن این روش سرعت انتقال داده ها می باشد .
در حقیقت شما با استفاده از سوكتها می خواهید یك ابزار برای استفاده از پروتكلهای TCP یا UDP در اختیار داشته باشید .

ارسال و دریافت به روش UDP با سوكتهای دیتاگرام
توابع ارسال ، دریافت و پذیرش برای سوكتهای نوع استریم كاربرد دارد . حال باید دید كه به چه صورت می توان ارسال و دریافت را به روش UDP روی سوكتهای نوع دیتاگرام انجام داد .
. برنامه سمت سرویس دهنده
الف ) یك سوكت از نوع دیتاگرام ایجاد كنید . این كار با فراخوانی تابع socket() با پارامتر

SOCK – DGRAM انجام می شود .
ب ) به سوكت ایجاد شده آدرس پورت موردنظرتان را نسبت بدهید . ( با تابع bind() ) .
ج ) بدون هیچ كار اضافی می توانید منتظر دریافت داده ها بشوید . ( تا موقعی كه داده ای دریافت نشود ارسال معنی نمی دهد . ) وقتی داده ای دریافت و پردازش شد آدرس برنامه مبدا ( آدرس IP و پورت ) مشخص شده و ارسال امكان پذیر خواهد بود .
ارسال و دریافت وی سوكتهای نوع دیتاگرام بوسیله توابع recvform() و sendto() انجام می شود .
د ) نهایتاً سوكت ایجاد شده را ببندید .
. برنامه سمت مشتری
الف ) یك سوكت از نوع دیتاگرام ایجاد كنید . ( با تابعsocket() و پارامتر SOCK-DGRAM ) .
ب ) هرگاه نیاز شد بدون هیچ كار اضافی داده هایتان را به سمت سرویس دهنده ارسال نمایید . تا وقتی كه به سمت سرویس دهنده ارسال نداشته باشید ، دریافت داده ها معنا نمی دهد چرا كه شما برای سرویس دهنده شناخته شده نیستید مگر اینكه داده ای را ارسال نمائید . ارسال و دریافت را تا زمانی كه نیاز است انجام بدهید .
ج ) سوكت ایجاد شده را ببندید .
فرم كلی تابع ارسال داده مبتنی بر سوكتهای دیتاگرام بصورت زیر است :

int sendto ( int sockfd , const void * msg , int len , unsigned int flags , const struct sockaddr * to , int tolen ) ;
. sockfd : مشخصه سوكت دیتاگرام كه با تابع socket() بوجود آمده است .
. msg : آدرس محل قرار گرفتن پیام در حافظه كه داده های ارسالی بایستی از آنجا استخراج شده و درون یك بسته UDP و درون یك بسته UDP قرار گرفته و ارسال شود .

. len : طول پیام ارسالی بر حسب بایت .
. to : استراكچری از نوع sockaddr كه قبلاً ساختار آنرا مشخص كردیم . در این استراكچر باید آدرس IP مربوط به ماشین مقصد و همچنین شماره پورت سرویس دهنده تنظیم شود.
. tolen : طول استراكچر sockaddr است كه به سادگی می توانید آنرا به مقدار ) sizeof struct sockaddr تنظیم نمایید .مقدار برگشتی این تابع همانند تابع send() تعداد بایتی اسست كه سیستم عامل موفق به ارسال آن شده است . دقت كنید كه اگر مقدار برگشتی ( 1-) باشد خطائی بروز كرده كه می توانید شماره خطا را در متغیر سراسری error بررسی نمائید . باز هم تكرار می كنیم دلیلی ندارد تعداد بایتی كه تقاضا ارسال آنها را داده اید با تعداد بایتی كه ارس

ال شده یكی باشد . بنابراین حتماً مورد را در برنامه خود بررسی كرده و همچنین تقاضای ارسال در هر مرحله را نزدیك یك كیلو بایت درنظر بگیرید .
فرم كلی دریافت داده مبتنی بر سوكتهای دیتاگرام بصورت زیر است :
int recvfrom ( int sockfd , void * buf , int len , unsingned int flags , struct sockaddr * from , int * fromlen ) ;

. sockfd : مشخصه سوكت دیتاگرام كه با تابع socket () بوجود آمده است .
. buf : آدرس محلی از حافظه كه سیستم عامل داده های دریافتی را در آن محل قرار خواهند داد .
. len : طول پیام كه باید دریافت شود ( برحسب بایت ) .
. from : استراكچری است از نوع sockaddr كه سیستم عامل آنرا با مشخصات آدرس IP و آدرس پورت برنامه مبدأ تنظیم و به برنامه شما بر می گرداند .
. len : طول استراكچری است كه سیستم عامل آنرا برگردانده است .
مقدار برگشتی این تابع نیز تعداد بایتی است كه دریافت شده است . این پارامتر برای پردازش

داده های دریافتی اهمیت حیاتی دارد .

ایجاد یك سوكت
اضافه كردن قابلیت های شبكه به برنامه های Visual C++ با استفاده از كلاس های MFC Winsock نسبتاً ساده است و كلاس مبنا ، CasyncSocket ، یك ارتباط سوكت كاملو رویداد

گرا ( event – driven ) ارایه می كند . كلاس هایی كه از این كلاس مشتق می شوند می توانند رویداده را به دام انداخته و نسبت به آنها عكس العمل نشان دهند .

اولین كاری كه برای ساختن یك سوكت در برنامه باید انجام دهید تعریف یك متغیر از نوع CasyncSocket در كلاس اصلی برنامه است :
class CMYDlg : public Cdialog
{
.
.
.
private :

Casyncsocket m- sMysocket ;
} ;
بستن كانال ارتباطی
بعد از آنكه برنامه كارش را به پایان رساند ، باید كانال ارتباطی را با متد close ببندد . این متد هیچ آرگومانی نمی گیرد :
m- sMysocket. Close ( ) ;

رویدادهای سوكت
یكی از دلایل اصلی مشتق كردن از كلاس CasyncSocket امكان نوشتن تابع برای رویدادهای سوكت است . كلاس CasyncSocket برای هر رویداد تابعی را فراخوانی می كند . این توابع فقط در نام اختلاف دارند . تمام این توابع به صورت protected تعریف شده اند و احتمالاً شما هم باید توابع خود را چنین تعریف كنید . تمام این توابع یك پارامتر از نوع int می گیرند كه آن را چك می كنند تا مطمئن شوند خطایی روی نداده است . جدول زیر توابع رویدادهای كلاس سوكت را نشان می دهد .
تابع مفهوم
OnAccept این تابع ( در سوكت گوش دهنده ) می گوید كه یك ارتباط در انتظار پذیرفته شدن بسر می برد.
OnClose این تابع می گوید كه طرف مقابل سوكت خود رابسته است ، پاسخ این رویداد معمولاً بستن سوكت خودی است .
OnConnect این تابع می گوید كه كانال ارتباطی با طرف مقابل یرقرار شده و اینك می توان پیام رد وبدل كرد .
ONReceive این تابع می گوید كه مقداری داده از سوكت مقابل رسیده و آماده دریافت است .
OnSend این تابع می گوید كه سوكت آماده ارسال داده است . این تابع بلافاصله بعد از برقراری ارتباط فراخوانی خواهد شد . هر بار كه برنامه اجرا كننده متد s end بخواهد داده بیشتری ارسال كند ، باز هم این تابع فراخوانی می شود ؛ یعنی ارسال بافر پایان یافته و برنامه می تواند ادامه پیام را ارسال كند .

قبل از آنكه وارد مقوله برنامه نویسی سوكت بشویم بد نیست الگوریتم كل كاری كه بایستی در سمت سرویس دهنده و همچنین در سمت مشتری انجام بشود ، بررسی نمائیم :

برای دریافت اینجا کلیک کنید

سوالات و نظرات شما

برچسب ها

سایت پروژه word, دانلود پروژه word, سایت پروژه, پروژه دات کام,
Copyright © 2014 icbc.ir