Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Sukar embawa Tuah
Sukar embawa Tuah
Loading in …3
×

Check these out next

1 of 16 Ad

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

Download to read offline

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

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

Advertisement
Advertisement

More Related Content

Similar to برنامه سازی شبکه: برنامه نویسی سوکت در سی شارپ (17)

Advertisement

Recently uploaded (20)

Advertisement

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

  1. 1. ‫چی‬ ‫عینک‬ ‫نوید‬
  2. 2. ‫شده‬ ‫تشکیل‬ ‫بخش‬ ‫دو‬ ‫از‬ ‫شبکه‬ ‫برنامه‬ ‫هر‬ ‫سرور‬(‫دهنده‬ ‫خدمات‬) ▪‫دارد‬ ‫مشخصی‬ ‫آدرس‬ ▪‫است‬ ‫درخواست‬ ‫منتظر‬ ‫مشتری‬(‫خدمات‬ ‫خواهان‬) ▪‫ندارد‬ ‫مشخص‬ ‫آدرس‬ ▪‫دهد‬ ‫می‬ ‫سرور‬ ‫به‬ ‫را‬ ‫خود‬ ‫درخواست‬ ‫برنامه‬ ‫برای‬ ‫استاندارد‬ ‫روش‬ ‫یک‬ ‫برکلی‬ ‫سوکت‬ ‫شبکه‬
  3. 3. ‫سوکت‬ ‫ایجاد‬ ‫آدرس‬ ‫دادن‬ ‫نسبت‬ ‫تقاضا‬ ‫مدیرت‬ ‫و‬ ‫تقاضا‬ ‫برای‬ ‫انتظار‬ ‫تقاضا‬ ‫پذیرش‬ ▪‫تقاضا‬ ‫انجام‬ ▪‫دریافت‬ ‫و‬ ‫ارسال‬ ▪‫تقاضا‬ ‫پایان‬ ‫تقاضا‬ ‫کردن‬ ‫صف‬ ‫و‬ ‫انتظار‬ ‫پایان‬
  4. 4. ‫سوکت‬ ‫ایجاد‬ ‫سرور‬ ‫به‬ ‫تقاضا‬ ‫ارسال‬ ▪‫تقاضا‬ ‫انجام‬ ‫تقاضا‬ ‫پایان‬
  5. 5. Client Server Socket Socket Bind Listen Send/Receive Close Close Accept Connect Send/Receive
  6. 6. ‫سوکت‬  System.Net.Sockets.Socket ‫به‬ ‫توان‬ ‫می‬ ‫آن‬ ‫طریق‬ ‫از‬ ‫که‬ ‫انتزاعی‬ ‫مفهمومی‬ ‫یافت‬ ‫دسترسی‬ ‫شبکه‬ ‫به‬ ‫مربوط‬ ‫عملیاتهای‬ IPAddress ‫آدرس‬ ‫که‬ ‫ای‬ ‫داده‬ ‫نوع‬IP‫می‬ ‫نگهداری‬ ‫خود‬ ‫در‬ ‫را‬ ‫کند‬. IPEndPoint ‫آدرس‬ ‫آن‬ ‫در‬ ‫که‬ ‫داده‬ ‫نوع‬IP‫پورت‬ ‫شماره‬ ‫بهمراه‬ ‫گردد‬ ‫می‬ ‫نگهداری‬.
  7. 7.  Socket(AddressFamily, SocketType, ProtocolType) ‫ک‬ ‫ایجاد‬ ‫سوکت‬ ‫یک‬ ‫توان‬ ‫می‬ ‫تابع‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬‫رد‬. ‫شبک‬ ‫در‬ ‫بخواهیم‬ ‫زمانیکه‬ ‫برای‬ ‫تابع‬ ‫این‬ ‫پارامترهای‬‫ه‬ TCP/IP‫باشد‬ ‫می‬ ‫زیر‬ ‫بصورت‬ ‫کنیم‬ ‫کار‬: ▪AddressFamily:‫مقدار‬ ‫با‬InterNetwork:‫ب‬ ▪SocketType: ▪‫گرا‬ ‫اتصال‬ ‫حالت‬ ‫برای‬(TCP)‫مقدار‬ ‫با‬Stream ▪‫حالت‬ ‫برای‬‫اتصال‬ ‫بدون‬(UDP)‫مقدار‬ ‫با‬Dgram ▪ProtocolType:‫مقدار‬ ‫با‬IP
  8. 8. ‫سو‬ ‫یک‬ ‫سیستم‬ ‫تابع‬ ‫این‬ ‫فراخوانی‬ ‫از‬ ‫پس‬‫کت‬ ‫نماید‬ ‫می‬ ‫ایجاد‬ ‫شده‬ ‫گفته‬ ‫مشخصات‬ ‫با‬.‫که‬‫از‬ ‫در‬ ‫مختلف‬ ‫عملیاتهای‬ ‫انجام‬ ‫برای‬ ‫توان‬ ‫می‬ ‫آن‬ ‫کرد‬ ‫استفاده‬ ‫شبکه‬.
  9. 9. ‫سوکت‬ ‫به‬ ‫آدرس‬ ‫دادن‬ ‫نسبت‬ ‫برای‬:  Bind(IPEndPoint ep) ‫نوع‬ ‫از‬ ‫متغیر‬ ‫یک‬ ‫تابع‬ ‫این‬IPEndPoint‫و‬ ‫گیرد‬ ‫می‬ ‫دهد‬ ‫می‬ ‫نسبت‬ ‫سوکت‬ ‫به‬ ‫را‬ ‫آن‬ ‫در‬ ‫موجود‬ ‫آدرس‬.
  10. 10. ‫به‬ ‫مقداردهی‬ ‫برای‬IPEndPoint‫زیر‬ ‫بصورت‬ ‫گردد‬ ‫می‬ ‫عمل‬: ‫نوع‬ ‫از‬ ‫متغییر‬ ‫یک‬ ‫ابتدا‬IPAddress‫آدرس‬ ‫و‬ ‫تعریف‬IP ‫تابع‬ ‫از‬ ‫استفاده‬ ‫با‬Parse‫می‬ ‫داده‬ ‫نسبت‬ ‫آن‬ ‫به‬ ‫شود‬:  IPAddress ▪ Parse("127.0.0.1"); ‫متغیر‬ ‫بهمراه‬ ‫پورت‬ ‫شماره‬ ‫سپس‬IPAddress‫به‬ ‫متغیر‬IPEndPoint‫شود‬ ‫می‬ ‫داده‬ ‫نسبت‬.
  11. 11. ‫اتصال‬ ‫تقاضاهای‬ ‫به‬ ‫سوکت‬ ‫دادن‬ ‫گوش‬ ‫برای‬  Listen(int backlog) ‫صف‬ ‫اندازه‬ ‫آن‬ ‫در‬ ‫که‬ ‫گیرد‬ ‫می‬ ‫متغیر‬ ‫یک‬ ‫تابع‬ ‫این‬ ‫گردد‬ ‫می‬ ‫مشخص‬ ‫انتظار‬. ‫تقاضاهای‬ ‫تمامی‬ ‫سیستم‬ ‫تابع‬ ‫این‬ ‫زدن‬ ‫صدا‬ ‫با‬ ‫می‬ ‫نگهداری‬ ‫انتظار‬ ‫صف‬ ‫در‬ ‫را‬ ‫سوکت‬ ‫این‬ ‫به‬ ‫مربوط‬ ‫کند‬.
  12. 12. ‫اتصال‬ ‫پذیرش‬ ‫برای‬  Socket Accept() ‫با‬‫صدا‬‫زدن‬‫این‬‫تابع‬‫سیستم‬‫یکی‬‫از‬‫تقاضاهای‬ ‫اتصال‬‫به‬‫صف‬‫شده‬‫را‬‫برداشته‬‫برای‬‫آن‬‫یک‬‫سوک‬‫ت‬ ‫ایجاد‬‫کرده‬‫و‬‫سوکت‬‫را‬‫به‬‫برنامه‬‫ما‬‫برمی‬‫گرداند‬. ‫از‬‫این‬‫سوکت‬‫می‬‫توان‬‫برای‬‫مرحله‬‫انجام‬‫تقاضا‬ (‫ارسال‬‫و‬‫دریافت‬)‫استفاده‬‫کرد‬. ‫این‬‫پردازش‬‫بالک‬‫شدنی‬‫می‬‫باشد‬‫به‬‫این‬‫معنی‬ ‫که‬‫اگر‬‫تقاضایی‬‫در‬‫صف‬‫نباشد‬‫برنامه‬‫هنگ‬‫می‬ ‫شود‬!
  13. 13. ‫سوکت‬ ‫کار‬ ‫پایان‬  Close() ‫برن‬ ‫کار‬ ‫پایان‬ ‫معنای‬ ‫به‬ ‫دهنده‬ ‫گوش‬ ‫سوکت‬ ‫برای‬‫امه‬ ‫باشد‬ ‫می‬ ‫سرور‬.
  14. 14. ‫سرور‬ ‫به‬ ‫اتصال‬ ‫تقاضای‬  Connect(IPEndPoint remoteEP) ‫ی‬ ‫که‬ ‫خواهیم‬ ‫می‬ ‫سیستم‬ ‫از‬ ‫تابع‬ ‫این‬ ‫زدن‬ ‫صدا‬ ‫با‬‫ک‬ ‫در‬ ‫شده‬ ‫مشخص‬ ‫آدرس‬ ‫به‬ ‫اتصاف‬ ‫تقاضا‬remoteEP ‫نماید‬ ‫ارسال‬. ‫گردد‬ ‫می‬ ‫طرفه‬ ‫سه‬ ‫دستدهی‬ ‫انجام‬ ‫باعث‬ ‫اینکار‬.
  15. 15. ‫ارسال‬  Int Send(byte[] buffer) ‫دریافت‬  Int Receive(byte[] buffer) ‫باشد‬ ‫می‬ ‫شدنی‬ ‫بالک‬ ‫پردازش‬ ‫یک‬ ‫دریافت‬.‫بدی‬‫ن‬ ‫برنامه‬ ‫نباشد‬ ‫دریافت‬ ‫برای‬ ‫ای‬ ‫داده‬ ‫اگر‬ ‫که‬ ‫معنی‬ ‫گردد‬ ‫می‬ ‫هنگ‬.
  16. 16. ‫برای‬‫ارسال‬‫رشته‬asend‫کافیست‬: srs.Send(Encoding.UTF8.GetBytes(asend)); ‫کافیست‬ ‫رشته‬ ‫همان‬ ‫دریافت‬ ‫برای‬: Byte[] buf = new Byte[256]; srs.Receive(buf); a = Encoding.UTF8.GetString(buf);

×