تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 34 +

تعداد کل مطالب : 338 +

تعداد نظرات : 29 +

حضرت علی (ع) : دانش اندک همراه با عمل بهتر از علم بسیار بدون عمل است.

آموزش مقدماتی تا پیشرفته سی شارپ بخش دویست و شصت و دوم


بنام اول برنامه نویس هستی.

سلام به همه لندلرنی های عزیز.
درخدمتتون هستیم با

آموزش مقدماتی تا پیشرفته سی شارپ بخش دویست و شصت و دوم


امتحان كنيد: ايجاد سرور Pong و برنامه ي PongEngine

با استفاده از ويژوال استوديو يك پروژه ي جديد از نوع Class Library به نـام PongEngine ايجـاد كنيد.

نام فايل Class1.cs كه به صورت اتوماتيك ايجاد مي شود را به فايل Pinger.cs تغيير دهيد.

برنامـه را ذخيـره كنيـد و سـپس يـك پـ روژه ي ديگـر نيـز از نـوع Console Application بـه نـام PongServer بـه ايـن Solution اضـافه كنيـد.

بـراي اضـافه كـردن يـك پـروژه ي جديـد بـه همـين Solution مـي توانيـد از نـوار منـوي ويـژوال اسـتوديو گزينـه ي File New Project .Add را انتخاب كنيد.

حال بايد دو ارجاع به پروژه ي PongServer ايجاد كنيد (دياگرام شكل زیر  را مشاهده كنيد ).

براي ايـن كـار در پنجره ي Solution Explorer روي پروژه ي PongServer كليك راست كـرده و از منـويي كه باز مي شود گزينه ي Add Reference را انتخاب كنيد.

یك ارجاع به پروژه ي PongEngine به برنامه اضافه كنيد.

يك ارجاع نيز به فضاي نام System.Remoting.Runtimeبـه برنامـه اضـافه كنيـد.

ايـن فضاي نام در قسمت NET. از كادر وجود دارد به اين ترتيب قسمت ارجاعات برنامه ي شما بايد مشابه شـكل زیر  باشـد.

بـراي مـشاهده ي ايـن قـسمت روي نـام References در Solution Explorer كليك كنيد تا ارجاعات برنامه نمايش داده شوند.

روي نام پروژه ي PongEngine در Solution Explorer كليك راست كرده و گزينه ي Add Reference  را انتخاب كنيد.

سپس با استفاده از قسمت NET. از كادر Add  Reference فضاي نـام System.Windows.Forms.را به برنامه اضافه كنيد.

حال فايل Pinger.cs را در پروژه ي PongEngine باز كرده و كد موجود در آن را به صورت زيـر تغييـر دهيد:

فايل Program.cs از پروژه ي PongServer را باز كرده و تغييرات زير را در آن ايجاد كنيد:

حال روي پروژه ي PongServer كليك راست كـرده و از منـويي كـه بـاز مـي شـود گزينـه ي Set as start up project را انتخاب كنيد.

برنامه را اجرا كنيد . به اين ترتيب پنجره اي مشابه شكل زیر نمايش داده خواهد شد.

اگر فاير وال و يا هـر نـرم افـزار  امنيتي ديگري در سيستم شما نصب شده باشد، اين نوع سرور را محدود خواهد كرد.

بنابراين اگر آن نـرم افـزار سـوالي در مورد محدود كردن اين برنامه از شما پرسيد، به آن پاسخ منفي دهيد و يا برنامه را غير فعال كنيد.

چگونه كار مي كند؟

تا اينجا فقط يك پروژه ي كتابخانه ي كلاس و نيز يك پروژه ي تحت كنسول ايجاد كرده ايم.

كدي هم كـه بـراي اضـافه كـردن فضاي نامهاي مربوط به Remoting وجود دارد زياد نيست.

اگر به پنجره ي كنسولي كه به وسيله ي برنامه نمـايش داده مـي شود  دقت كنيد مشاهده خواهيد كرد كه برنامه به درستي كار مي كند.

اما خب اين سوال پيش مي آيد كه تـا اينجـا برنامه چه كاري انجام داده است؟

ابتدا سرور يك كانال را در پورت ۸۰۰۰ ثبت مي كند تا بتواند براي ارتباطات خود از اين كانال استفاده كند.

همانطور كه گفـتم بـراي اينكه برنامه ي سرور و برنامه ي كلاينت بتوانند با هم در ارتباط باشند بايد از يك پورت استفاده كنند.

بنابراين شماره پـورتي كـه در اين قسمت مشخص شده است به وسيله ي هر دو برنامه مورد استفاده قرار خواهد گرفت.

سپس بايد كلاس Pinger را در اين پورت ثبت كنيم.

به اين ترتيب NET Remoting. مي داند زماني كه يك تقاضا از طرف يك برنامه ي كلاينت به اين پورت رسيد، چه نوع شيئ اي را بايد ايجاد كرده و براي برنامه ي كلاينت ارسال كند.

همچنين NET Remoting. .براي ارسال اين شيئ از پروتكل TCP و البته پورت ۸۰۰۰ استفاده خواهد كرد :

شمارنده ي WellKnownObjectMode.SingleCall كه در اين متد به كار رفته است مشخص مي كند كه هر شيئ بعد از ايجاد شدن و فرستاده شدن به سمت برنامه ي كلاينت بايد نابود شود.

به اين ترتيب بازاي هر يك درخواسـتي كـه از طرف يك بر نامه ي كلاينت به اين پورت فرستاده مي شود، يك شيئ جديد ايجاد شده و به سمت كلاينت فرستاده مي شود.

سـپس شيئ ايجاد شده نابود خواهد شد.





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

پایان آموزش مقدماتی و پیشرفته سی شارپ را اغلام میکنم.

نظرات و پیشنهادات خود را با ما در میان بگزارید.

ارادتمند شما سجاد اسدی.

کانال روبیکا

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

«”خدایا چنان کن سرانجام کار تو خشنود باشی و ما رستگار”»


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ