برنامه سازی شبکه: برنامه نویسی سوکت در سی شارپ
TRANSCRIPT
سوکت نویسی برنامه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);