وب آکادمی

مرجع آموزش طراحی و برنامه نویسی وب

برنامه نویسی Server/Client اتصال گرا (TCP) با کمک سوکت در سی شارپ

دسته بندی:مجموعه پروژه سی شارپ تاریخ انتشار: 4 آبان 1397 برچسب ها : برچسب‌ها:,

برای ایجاد برنامه های سرویس دهنده/سرویس گیرنده بصورت اتصال گرا در سی شارپ ، دو پروژه از نوع کنسول ایجاد می کنیم. یکی از روش های ارتباط و ارسال پیام بین برنامه های سرویس گیرنده وسرویس دهنده استفاده از سوکت می باشد.در نمونه برنامه های زیر برای ساخت برنامه سرویس دهنده از TcpListener و متد AcceptSocket آن استفاده شده است.

این متد یک شی سوکت بر می گرداند که با فراخوانی متدهای Send و Receive آن می توان پیام ها را ارسال و دریافت کرد.
در برنامه سرویس گیرنده هم یک سوکت ایجاد شده و با اتصال به سرویس دهنده با آن پیام رد و بدل می کند . کلاس Socket در سی شارپ متدهای زیر را داراست:

  • متد Connect : اتصال به سرویس دهنده
  • متد Send : ارسال پیام
  • متد Receive: دریافت پیام
  • متد Close : بستن ارتباط

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

کد برنامه سرویس دهنده:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;using System.Net;
using System.Net.Sockets;namespace Server1
{
class Program
{
static void Main(string[] args)
{
IPAddress ip = IPAddress.Parse("192.168.11.30");
int port = 2500;
TcpListener s = new TcpListener(ip, port);
s.Start();
Console.WriteLine("Server Started.. ");
Socket c = s.AcceptSocket();
Console.WriteLine("1 Client connected.. ");
byte[] b1 = new byte[80];
b1 = ASCIIEncoding.ASCII.GetBytes("Hello ,please send message:");
c.Send(b1);
byte[] b2 = new byte[80];
c.Receive(b2);
Console.WriteLine( ASCIIEncoding.ASCII.GetString(b2) );
c.Close();
Console.ReadKey();
}
}
}

کد برنامه سرویس گیرنده :


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;using System.Net;
using System.Net.Sockets;namespace Client
{
class Program
{
static void Main(string[] args)
{
// ایجاد ارتباط
// TCP
// با استفاده از سوکت
string msg;
Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream
, ProtocolType.Tcp);
c.Connect("192.168.11.30", 2500);
byte[] b1 = new byte[80];
c.Receive(b1);
Console.Write( ASCIIEncoding.ASCII.GetString(b1) );
msg = Console.ReadLine();
byte[] b2 = new byte[80];
b2 = ASCIIEncoding.ASCII.GetBytes(msg);
c.Send(b2);
c.Close();
}
}
}

در صورت اجرای برنامه ها، ابتدا یک پیغام از سرویس گیرنده به سرویس دهنده فرستاده شده و سپس سرویس دهنده با فرستان یک پیام تائید به سرویس گیرنده اطلاع می دهد

سایت کدنویسان سعی می کند آموزش سی شارپ (C Sharp) را با استفاده از نمونه برنامه ها و مطالب آموزشی مفید و سورس های پروژه قابل دانلود ارائه کند

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

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

16 − 8 =