برنامه نویسی درNET. (بخش دوم)

tablighat

برنامه نویسی درNET. (بخش دوم)

اتصال از طریق نقطه تماس

اتصال از طریق نقطه تماس

اتصال از طریق نقطه تماس

قبل از هر چیزی برای این که برنامه ای در یک شبکه مورد استفاده قرار بگیرد،به یکServer(خدمت دهنده)وClient(خدمت گیرنده)نیاز داریم.در برنامه  Serverارتباط روی یک پورت خاص باز کرده و منتظر می مانید تا یک کلاینت روی آن پورت به شما وصل شود،سپس به انتقال اطلاعات می پردازد.

حالا می خواهیم تمامی مطالب مورد نظر را به صورت کد بنویسیم و بررسی کنیم این سناریو توسط.NETچگونه قابل پیاده سازی است.

در مرحله اول با وصل شدن به یک Serverآشنا می شویم;این سرور یک آدرسIpاست که می توانید مانند مثال هفته پیش از روی نام دامین آن،این آدرس را به دست بیاورید یا اینکه آن را به صورت دستی وارد کنید.به مثال زیر دقت کنید:

  IPAddress test1 =IPAddress.

Parse(“192.168.1.1”);

کد بالا از روی یک آدرس IP که به صورت یک رشته متنی است یک شیء از کلاس IPAdress می سازد.

سپس باید یک نقطه اتصال با توجه به آدرس IP که در بالا به دست آوردیم و یک پورت خاص ایجاد کنیم.

IPEndPoint ie=new

IPEndPoint(test1,8000);

در اینجا از روی IP و پورت مورد نظر یک نقطه اتصال ایجاد می کنیم.سپس باید یک Socket که نشان دهنده سرور ما است ایجاد کنیم.به کد زیر دقت کنید:

Socket newserver= new

Socket(AddressFamily.InterNetwork,SocketType,ProtocolType.Tcp);

newserver.Bind(ie);

newserver.Listen(5);

Socket newclient = newserver.Ac-cept();

ابتدا یک شیء از کلاس Socket می سازیم و به سازنده آن سه مقدار می دهیم که هر کدام مشخص کننده یک خاصیت از این شیء بوده که به صورت زیر است:

AddressFamily:مشخص کننده شمای آدرس دهی یک شیءSocket است.

SocketType:مشخص می کند ارتباط با این Socketبه چه صورت خواهد بود.

PortocolType:نوع پروتکل مورد نظر برای انتقال اطلاعات را مشخص می کند که از نوعTcp/IPباشد یاUdp.

بعد از این که یک شیء از کلاس Socket ایجاد کردیم،آن را به نقطه تماس یعنی ieمتصل می کنیم;یعنی تمامی در خواست ها روی آن نقطه تماس توسط سرور قابل دریافت و پردازش است.

سپس باید به سرور بگوییم منتظر برقراری یک ارتباط از سوی یک کلاینت باشد.برای این کار از الگوی  Listen استفاده می کنیم.این الگو که یک پارامتر از نوع عدد صحیح دریافت می کند مشخص می سازد سرور تا چه تعداد ارتباط از سمت کلاینت ها را می تواند قبول کند.در مثال بالا عدد ۵نشان دهنده این است که حداکثر پنج ارتباط می تواند با این سرور برقرار شود.

سپس باید ارتباط هایی را که با سرور برقرار می شود مدیریت کنیم.برای این کار می توانیم به صورت زیر عمل کنیم:

Socket newclient = newsrver.Accept();

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

برای ارسال اطلاعات می توان از متد Send استفاده کرد؛این متد یک ارائه از byteها را برای سرور یا یک کلاینت یا به صورت کلی برای یک Socket دیگر ارسال می کند.

برای بازیابی اطلاعات می توان از الگوی Reciveاستفاده کرد؛این الگو مانند متد Send یک آرایه از بایت ها را دریافت می کند و مقدار دریافت شده از یک سوکت را در آن ذخیره می کند.

این کدها برای سمت سرور بود،حالا یک کلاینت قرار است به این سرور متصل شود و یک رشته متنی به صورت Hello Guste را به سرور ارسال کند.

IPAddress host = IPAddress

Parse(“192.168.1.1”);

IPEndPoint hostep = new

IPEndPoint(host,8000);

Socket sock = new

Socket(AddressFamily.InterNetwork,SocketType.Stream,Protocol-Type.Tcp);

Sock.Connect(hostep);

نخست مانند کدهای بالا ما باید آدرس IP و پورت سرور را داشته باشیم و سپس با استفاده از آن ها یک نقطه تماس ایجاد می کنیم، سپس به شیء ایجاد شده از کلاس Socket می گوییم یه نقطه اتصال-که همان سرور است-وصل شود،سپس در کد زیر یک رشته متنی را به صورت یک ارائه ازByteها تبدیل می کنیم و آن را برای سرور ارسال می کنیم.

Sock.Send(Encoding.ASCII.GetBytes(“Hello Guste”));

برای رفتن به بخش اول این آموزش اینجا کلیک کنید

click

tablighat

Omid Ka

به طراحی وب و همچنین کار با سیستم مدیریت های مختلف علاقه مندم و همچنین در زمینه اخبار فناوری و تکنولوژی در خدمت دوستداران پی سی دراپ هستم :-)

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *