- در ابتدا می بینیم که یک namespace به نام Server_Net ایجاد شده است و کل کد های فرم مورد نظر ما در این namespace است.
- در خط بعدی منظور از کلمه کلیدی (keyword public) یعنی اینکه کلاس ما عمومی است و private (خصوصی) نیست در نتیجه موارد استفاده شده در این کلاس قابل استفاده در کلاس های دیگر می باشد. منظور از کلمه کلیدی partial این است که کلاس frmMain می تواند در چند قسمت تعریف شود (مثال 1). بعد عبارت class frmMain: Form را می بینید که معرف کلاس مورد نظر و در نهایت فرم بودن کلاس را بیان می کند.
- مثال 1:
public partial class Employee
}
()public void DoWork
}
{
{
public partial class Employee
}
()public void GoToLunch
}
{
{
همان طور که می بینید اگر بخواهیم از کلمه کلیدی partial استفاده کنیم باید کلاس ما از نوع public باشد و بقیه خاصیت ها هم در این خط کد یکسان باشد. حالا کلاس Employee در دو بخش تعریف شده است.
- ()InitializeComponent این متد برای پشتیبانی طراح است. آن را تغییر ندهید.
- دو سوکت با نام های handler و listner تعریف کرده ایم. برنامه نویسی سوکت راهی برای ارتباط بین دو گره (node) در شبکه برای تبادل اطلاعات می باشد. یک سوکت یا گره (node) به یک پرت در IP تعیین شده گوش می دهد. در همین حین سوکت مقابل هم یک ارتباط را شکل می دهد.

- یک IPHostEntry به نام ipHostInfo ایجاد می کنیم که برای بدست آوردن اطلاعات آدرس هاست است.
- یک IPAddress تعریف کردیم که برای آماده کردن یک (Internet Protocol ip) است.
- یک IPEndpoint تعریف کرده ایم. IPEndpoint برای ارائه یک نقطه نهایی (Endpoint) شبکه متشکل از یک آدرس آی پی و شماره پرت است. منظور Endpoint سیستمی است که اطلاعات قرار است به آن فرستاده شود.
- یک متغییر به نام maxClient از نوع int که const است تعریف کردیم. int یعنی متغییر ما از نوع اعداد صحیح است و const هم یعنی در صورتی که تغییر در متغییر ما صورت بگیرد (مثلا اضافه یا کم شود)، این تغییر در طول برنامه ثبت خواهد شد. این متغییر بیان گر حداکثر کلاینتی است که سرور پشتیبانی می کند.
- دو ترد ایجاد کرده ایم. یک ترد (thread) یک مسیر اجرای مستقل است، قادر به اجرای همزمان با ترد های دیگر است.
- یک string تعریف کرده ایم. رشته یا همان string برای دخیره نوشته ها استفاده می شوند.
- یک آرایه از نوع بایت ایجاد کرده ایم. هر آرایه می تواند عنصر هایی از یک نوع را ذخیره کند. به دلیل اینکه داده ها به صورت بایت (byte) فرستاده و دریافت می شوند ما نوع آرایه را بایت در نظر گرفتیم.
- به نوع delegate می رسیم.
در این خط ما یک delegate برای متد setDisplay تعریف می کنیم. کار delegate این است که متد setDisplay را encapsulate می کند. encapsulate کردن بدین معنی است که یک گروه از خواص (properties)، متد ها و دیگر اعضا مرتبط را به عنوان یک واحد یا شی، مورد بررسی قرار می گیرد. با متد setDisplay و EnableTrue در ادامه مطلب آشنا می شوید.
- متغییر از نوع bool یک مقدار true (یا 1) یا false (یا 0) بر می گرداند. مثلا در یک متد اگر عدد x اعشاری باشد مقدار 1 و اگر عدد صحیح باشد مقدار 0 را بر می گرداند.
- کلمه کلیدی void مشخص می کند که متد مورد نظر مقداری را برنمی گرداند.
نکته: متد (method) و تابع (function) هر دو یک یکی هستند فقط اسم های شان در برنامه های مختلف متفاوت است.
اموزش خبلی خوب بودولی کمی کامل بشود بهترمی شود
مطلب خوبی بود ولی الان c# منسوخ شده
میشه در مورد ساخت این کار با react native توضیح بدید؟
کی منسوخ شد؟
عالی … مثل مطلب قبلیتون
برای این کار احتیاج به سرور هست ؟