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

Preview:

Citation preview

سوکت نویسی برنامهSocket Programming

چی عینک نوید

شبکه برنامه

شده تشکیل بخش دو از شبکه برنامه هر) دهنده ) خدمات سرور

دارد ▪ مشخصی آدرساست ▪ درخواست منتظر

) خدمات ) خواهان مشتریندارد ▪ مشخص آدرسدهد ▪ می سرور به را خود درخواست

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

سرور ) شبکه برنامه (TCPگامهای

سوکت ایجاد آدرس دادن نسبت تقاضا مدیرت و تقاضا برای انتظار تقاضا پذیرش

تقاضا ▪ انجامدریافت ▪ و ارسالتقاضا ▪ پایان

تقاضا کردن صف و انتظار پایان

مشتری ) شبکه برنامه (TCPگامهای

سوکت ایجاد سرور به تقاضا ارسال

تقاضا ▪ انجام تقاضا پایان

شبکه برنامه از مثال

Clientتعامل ServerSocket Socket

Bind

Listen

Connect Msg

Accept msg

Send/Receive

Close Close

Accept

Connect

Send/Receive

مفاهیم

سوکت System.Net.Sockets.Socket

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

IPAddress آدرس که ای داده .IPنوع کند می نگهداری خود در راIPEndPoint

آدرس آن در که داده پورت IPنوع شماره بهمراه. گردد می نگهداری

سوکت ایجاد

Socket(AddressFamily, SocketType, ProtocolType)

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

TCP/IP: باشد می زیر بصورت کنیم کار▪AddressFamily :مقدار ب: InterNetworkبا▪SocketType:

گرا )▪ اتصال حالت مقدار( TCPبرای Streamبااتصال )▪ بدون حالت مقدار( UDPبرای Dgramبا▪ProtocolType : مقدار IPبا

)... ادامه ) سوکت ایجاد

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

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

Bindتابع

: سوکت به آدرس دادن نسبت برای Bind(IPEndPoint ep)

نوع از متغیر یک تابع و IPEndPointاین گیرد می. دهد می نسبت سوکت به را آن در موجود آدرس

IPEndPoint

به مقداردهی زیر IPEndPointبرای بصورت: گردد می عمل

نوع از متغییر یک آدرس IPAddressابتدا و تعریفIP تابع از استفاده می Parseبا داده نسبت آن به

شود: IPAddress▪ Parse("127.0.0.1");

متغیر بهمراه پورت شماره به IPAddressسپس.IPEndPointمتغیر شود می داده نسبت

Listenتابع

اتصال تقاضاهای به سوکت دادن گوش برای Listen(int backlog)

صف اندازه آن در که گیرد می متغیر یک تابع این. گردد می مشخص انتظار

تقاضاهای تمامی سیستم تابع این زدن صدا بانگهداری انتظار صف در را سوکت این به مربوط

. کند می

Acceptتابع

اتصال پذیرش برای Socket Accept()

تقاضاهای از یکی س{یستم تاب{ع ای{ن زدن ص{دا ب{اسوکت ی{ک آ{ن برای برداشت{ه را شده ص{ف ب{ه اتص{ال

. گرداند برمی ما برنامه به را سوکت و کرده ایجاد تقاضا انجام مرحل{ه برای توان م{ی س{وکت ای{ن از

. ) کرد) استفاده دریافت و ارسال که معن{ی ای{ن ب{ه باش{د م{ی شدن{ی بالک پردازش ای{ن

! شود می هنگ برنامه نباشد صف در تقاضایی اگر

Closeتابع

سوکت کار پایان Close()

برنامه کار پایان معنای به دهنده گوش سوکت برای. باشد می سرور

Connectتابع

سرور به اتصال تقاضای Connect(IPEndPoint remoteEP)

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

remoteEP. نماید ارسال. گردد می طرفه سه دستدهی انجام باعث اینکار

تقاضا انجام

ارسال Int Send(byte[] buffer)

دریافت Int Receive(byte[] buffer)

. بدین باشد می شدنی بالک پردازش یک دریافتبرنامه نباشد دریافت برای ای داده اگر که معنی

. گردد می هنگ

تقاضا انجام به مربوط توابع رشته ارسال :asendبرای کافیست

srs.Send(Encoding.UTF8.GetBytes(asend));

: کافیست رشته همان دریافت برایByte[] buf = new Byte[256];srs.Receive(buf);a = Encoding.UTF8.GetString(buf);

Recommended