TCP Protokolüyle Sunucu ve İstemci Programları (TcpListener-C#)

C# Fareyi Hareket Ettirmek
C# ile Görüntü İşleme Dersleri (Aforge.Net)

Size faydalı olduysa, sosyal medyada paylaşarak bize destek olun. Teşekkürler.

İstemci Ekran Görüntüsü:

Program Açıklaması:

C# ile kendi chat programımızı yapabiliriz.

Bizim örneğimizde istemci sunuya mesaj gönderiyor ve sunucudan gelen mesajı alıyor.

Sunucu ise istemciden gelen mesaja göre otomatik mesaj gönderiyor.

Program TCP protokolüyle çalışyor.

Örneklerimizde Sunucu C# Console uygulaması, istemci ise C# Windows Forms uygulaması.

Sunucu Ekran Görüntüsü:

İstemci Kodu:

using System;
using System.Net.Sockets;
using System.IO;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace client
{
    public partial class Form1 : Form
    {
        public TcpClient Istemci;
        private NetworkStream AgAkimi;
        private StreamReader AkimOkuyucu;
        private StreamWriter AkimYazici;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                Istemci = new TcpClient("localhost", 1234);
            }
            catch
            {
                return;
            }
            AgAkimi = Istemci.GetStream();
            AkimOkuyucu = new StreamReader(AgAkimi);
            AkimYazici = new StreamWriter(AgAkimi);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (textBox1.Text == "")
                {
                    MessageBox.Show("Boş mesaj gönderemezsiniz.", "Uyarı!");
                    textBox1.Focus();
                    return;
                }

                string yazi;
                AkimYazici.WriteLine(textBox1.Text);
                AkimYazici.Flush();
                listBox1.Items.Add(textBox1.Text);
                yazi = AkimOkuyucu.ReadLine();
                listBox2.Items.Add(yazi);
            }
            catch
            {
                MessageBox.Show("Sunucu çalışmıyor.","Uyarı!");
            }
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            try
            {
                AkimYazici.Close();
                AkimOkuyucu.Close();
                AgAkimi.Close();
            }
            catch
            {
                MessageBox.Show("Program Doğru Kapanamıyor");
            }
        }
    }

}

Sunucu Kodu:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO; //StreamReader ve StreamWriter siniflari için
using System.Net.Sockets; //Socket, TcpListener ve NetworkStrem siniflari için
using System.Net;

namespace Server
{
    class Program
    {
        public static void cizgi()
        {
            for(int i=0;i<20;i++)
            {
                Console.Write("-");
            }
            Console.Write("\n");
        }
        static void Main(string[] args)
        {
            TcpListener TcpDinleyicisi = new TcpListener(IPAddress.Any, 1234);
            TcpDinleyicisi.Start();

            cizgi();
            Console.WriteLine("Sunucu calisiyor...");

            Socket IstemciSoketi = TcpDinleyicisi.AcceptSocket();

            if (!IstemciSoketi.Connected)
            {
                Console.WriteLine("Sunucu baslatilamiyor...");
            }
            else
            {
                Console.WriteLine("Istemci baglandi...");
                cizgi();

                while (true)
                {         
                    NetworkStream AgAkimi = new NetworkStream(IstemciSoketi);
                    StreamWriter AkimYazici = new StreamWriter(AgAkimi);
                    StreamReader AkimOkuyucu = new StreamReader(AgAkimi);

                    try
                    {
                        string IstemciString = AkimOkuyucu.ReadLine();
                        Console.WriteLine("Gelen Mesaj:" + IstemciString);
                        String gidenMesaj;

                        switch (IstemciString)
                        {
                            case "Merhaba":
                                gidenMesaj = "Merhaba Hoşgeldiniz.";
                                break;
                            case "Adınız":
                                gidenMesaj = "Robotica";
                                break;
                            case "Nerelisiniz":
                                gidenMesaj = "Dünya";
                                break;
                            case "Yaşınız":
                                gidenMesaj = "1";
                                break;
                            default:
                                gidenMesaj = "Anlamadım";
                                break;
                        }

                        Console.WriteLine("Giden Mesaj:" + gidenMesaj);
                        cizgi();

                        AkimYazici.WriteLine(gidenMesaj);
                        AkimYazici.Flush();
                    }
                    catch
                    {
                        return;
                    }
                }
            }
            IstemciSoketi.Close();
        }
    }
}

Visual Basic Projesi Olarak İndir

Size faydalı olduysa, sosyal medyada paylaşarak bize destek olun. Teşekkürler.

C# Fareyi Hareket Ettirmek
C# ile Görüntü İşleme Dersleri (Aforge.Net)