آموزش چت دو طرفه در سوکت پروگرمینگ در سی شارپ

برنامه نویسی سوکت یا سوکت پروگرمینگ چیست؟ (Socket Programming) به طور کلی، هر کامپیوتر (به ازای هر کارت شبکه‌اش) یک IP دارد؛ که از طریق این IP‌، می‌توان به ماشین فوق دسترسی پیدا نمود. این آدرس (IP) به 65535 پورت (PORT) تقسیم می‌شود. PORT یک مفهوم منطقی است؛ که به کمک آن می‌توان به‌طور همزمان، با چندین ماشین دیگر ارتباط برقرار نمود. پورت‌ها به دو گروه رزرو شده (پورت‌های بین 1 تا 1024) و غیر رزرو شده (سایر پورت‌ها) تقسیم می‌شوند. پورت‌های رزرو شده، برای کاربردهای استاندارد مورد استفاده قرار می‌گیرند. مثلا: در برنامه‌های سرور/کلاینت (Server/Client)، از پورت‌های غیر رزرو شده که آزاد باشند ( مورد استفاده‌ی سایر برنامه‌ها نباشند) می‌توان جهت برقراری ارتباطات مورد نیاز، استفاده نمود؛ یعنی می‌تواند به ازای هر پورت، با یک برنامه ارتباط برقرار کند. سوکت (Socket) یا پریز یا کانال در «شبکه» با یک بیان ساده، می‌توان گفت که سوکت به ترکیب یک آدرس ماشین (آی‌پی یا IP) و یک شماره درگاه (پورت یا Port) گفته می‌شود. در برقراری ارتباط بین کامپیوترها در یک شبکه، دو چیز بسیار مهم است: آدرس ماشینی که می‌خواهیم اطلاعاتی از آن بگیریم یا به آن ارسال کنیم. برنامه‌ای از آن ماشین که درخواست اطلاعات کرده؛ و یا اینکه می‌خواهیم اطلاعاتی از آن برنامه کسب کنیم. این دو، یعنی آدرس ماشین و شماره برنامه، به وسیله‌ی سوکت در شبکه مشخص می‌شوند. سوکت یک ارتباط قابل اطمینان جهت انتقال داده‌ها بین دو ماشین مجزا می‌باشد. سوکت، برنامه‌نویسان را از پیچیدگی‌های فرآیند برقراری ارتباط بین دو ماشین مانند جزئیات کد کردن بسته‌ها، فرآیند ارسال داده‌ها در شبکه، ارسال مجدد بسته‌های خراب و … دور ساخته و برنامه‌نویسان، به راحتی قاد