در جلسه قبل با روش ساخت برنامه کلاینت سرور بدون اتصال با کمک کلاس سکوت آشنا شدید، در این جلسه بدون استفاده از کلاس سوکت برنامه های کلاینت/ سرور را می نویسیم.
در این نوع ارتباط سرور و کلاینت هر یک بر روی یک خط میتواند اطلاعات را دریافت نماید. در اینجا ارتباط دو طرفه وجود ندارد و برای ایجاد ارتباطی برای ارسال و دریافت اطلاعات باید دو ارتباط یک طرفه ایجاد نمود. یعنی هر برنامه در هر سمت با پورت مخصوص خود داده را ارسال نماید.
برای نوشتن چنین برنامه ای نیاز هست در ابتدا با کلاس UDPClient آشنا شویم:
کلاس UDPClient
این کلاس سرویس های شبکه را بر اساس پروتکل UDP در اختیار قرار می دهد.و ارسال و دریافت بسته های Udp را ممکن میسازد. انواع سازنده های آن میتواند به اشکال زیر باشد:
UDPClient نام دلخواه= new UDPClient( );
UDPClient نام دلخواه= new UDPClient(شماره پورت );
UDPClient نام دلخواه= new UDPClient(پورت و آدرس);
همچنین بصورت زیر نیز میتواند استفاده شود: (ابتدا توسط IPEndPoint مقداردهی شود)
مثال:
IPEndPoint test=new IPEndPoint(IpAddress.Parse(“192.168.1.1”), 2000);
UDPClient u= new UDPClient( test);
انواع متدهای پرکاربرد کلاس UdpClinet:
الف)متد Connect
این متد اختیاری است و با استفاده از آن میتوان مقصد پیشفرض را برای UdpClinet مشخص کرد.
ب) متد Receive
برای دریافت داده است و داده ای را که از طرف مقابل می آید دریافت کرده و در آرایه ای از بایتها ذخیره میکند.یک ورودی از نوع IPEndpoint میپذیرد.
مثلا:
IPEndPoint test=new IPEndPoint(IpAddress.Parse(“192.168.1.1”), 2000);
UDPClient u= new UDPClient( test);
Byte[] m=u.Receive(ref test);
ج) متد Send
برای ارسال داده است.در یک نوع چهار ورودی میپذیرد. ورودی اول داده ارسالی از نوع Byte است. ورودی دوم طول داده ارسالی از نوع int است.ورودی سوم IP یا نام مقصد است و ورودی چهارم شماره پورت است.
د) متد Close
پیاده سازی یک برنامه کلاینت سرور از نوع UDP با socket
در مثال زیر یک ارتباط ساده بین سرور و کلاینت ایجاد شده است. نیاز به نوشتن دو برنامه داریم. یک برنامه در سمت سرور باید نوشته شود و برنامه دیگر در کلاینت نوشته و اجرا شود.