🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# / multi client (eğer client mesajı gonderemesse tekrar başlat düğmesine bas)

 

1-) C# -  multi client (eğer client mesajı gonderemesse tekrar başlat düğmesine bas)

1-)server.cs

using System;

using System.IO;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Net;

using System.Net.Sockets;

using System.Threading;

namespace server

{

    public partial class Form1 : Form

    {

        Thread t;

        IPAddress ipadresimiz;

        TcpListener dinle;

        //  Socket soket;

        //NetworkStream ag;

        // StreamReader oku;

        // StreamWriter yaz;

        public delegate void ricdegis(string text);

        public Form1()

        {

            InitializeComponent();

        }

        private void button3_Click(object sender, EventArgs e)

        {

            if (textBox2.Text == "")

                //Burda bos alan göndermeyi önlüyoruz...

                return;

            else

            {

                for (int i = 0; i < listem.Count; i++)

                {

                    Console.WriteLine("gönder sayi " + i);

                    StreamWriter yaz = new StreamWriter(listem[i]);//ag = kabul edilen client idi

                    yaz.WriteLine(textBox2.Text);//ag'a veri gonderiyoruz

                    yaz.Flush();//bağlanan cliente veriyi gonderdık

                }

                richTextBox1.AppendText(textBox2.Text + "\n");

                textBox2.Text = "";

            }

        }

        //public void ramazan1()//bunu yazmassam 2.client baglanamıyor nedenini

        //{

        //    //buradakileri list<> şeklinde yap hepsını

        //    //ag1 e mesaj gonder bakalım

        //    while (true)

        //    {

        //        Console.WriteLine("dinliyorum");

        //        Socket soket1 = dinle.AcceptSocket();

        //        NetworkStream ag1 = new NetworkStream(soket1);

        //        listem.Add(ag1);

        //        StreamReader oku1 = new StreamReader(ag1);

        //        while (true)

        //        {

        //            try

        //            {

        //                string yazi1 = oku1.ReadLine();

        //                ekranabas(yazi1);

        //            }

        //            catch

        //            {

        //                return;

        //            }

        //        }

        //    }

        //}

        public void ekranabas(string s)

        {

            if (this.InvokeRequired)//olmasada olur daha sonra kaldıracam

            {

                ricdegis degis = new ricdegis(ekranabas);//olmasada olur daha sonra kaldıracam

                this.Invoke(degis, s);//olmasada olur daha sonra kaldıracam

            }

            else

            {

                s = "Server: " + s;

                richTextBox1.AppendText(s + "n");//yazıları textboxa yazıyor

            }

        }

        List<NetworkStream> listem = new List<NetworkStream>();//ben

        static int client_sayisi = 0;

        public void yaz()

        {

            while (true)

            {

                try

                {

                    string yazi = oku.ReadLine();//soketten gelen yazıları okuyor

                    ekranabas(yazi);

                    Console.WriteLine("sonsuz buradamı");

                }

                catch

                {

                    return;

                }

            }

        }

        StreamReader oku;

        NetworkStream ag;

        Socket soket;

        public void okumayabasla()

        {

            while (true)

            {

                client_sayisi++;

                Console.WriteLine("client sayisi =  " + client_sayisi);

                 soket = dinle.AcceptSocket();//soketi kabul etti

                 ag = new NetworkStream(soket);//kabul edilen soketten veri almak için

                listem.Add(ag);//ben

                Console.WriteLine("listeye 1 client eklendi");

                for (int i = 0; i < listem.Count; i++)

                {

                    Console.WriteLine("sayi = " + i);

                    oku = new StreamReader(listem[i]);//kabul edilen soketten veri almak için

                    Thread s = new Thread(yaz);

                    s.Start();

                    //StreamReader sr = new StreamReader(listem[i]);

                    //richTextBox1.AppendText(sr.ReadToEnd());//hepsini yazar

                }

            }

        }

        public void dinlemeye_basla()

        {

            try

            {

                ipadresimiz = IPAddress.Parse("127.0.0.1");

                dinle = new TcpListener(ipadresimiz, Convert.ToInt16(textBox1.Text));

                dinle.Start();//dinlemeye başlıyor

                t = new Thread(new ThreadStart(okumayabasla));

                t.Start();

                richTextBox1.AppendText(DateTime.Now.ToString() + " Dinleme baslatildi...n");

            }

            catch (Exception e)

            {

                Console.WriteLine(e.Message);

                MessageBox.Show("Dinleme baslatilamadi");

            }

        }

        private void button1_Click_1(object sender, EventArgs e)

        {

            System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;

            Thread t2 = new Thread(new ThreadStart(dinlemeye_basla));

            t2.Start();

        }

        private void button2_Click_1(object sender, EventArgs e)

        {

            //ag.Close();

        }

    }

}

using System;

using System.IO;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Net;

using System.Net.Sockets;

using System.Threading;

namespace client

{

    public partial class Form1 : Form

    {

        //Yine gerekli Siniflarin nesneleri tanimlaniyor

        Thread t;

        TcpClient baglantikur;

        NetworkStream ag;

        StreamReader oku;

        StreamWriter yaz;

        public delegate void ricdegis(string text);

        public Form1()

        {

            InitializeComponent();

        }

        public void ramazan()

        {

            Thread t2 = new Thread(ramazan);

            t2.Start();

            ag = baglantikur.GetStream();

            oku = new StreamReader(ag);

            while (true)

            {

                try

                {

                    string yazi = oku.ReadLine();

                    ekranabas(yazi);

                }

                catch

                {

                    return;

                }

            }

        }

        // Clientde Method_2 (Okunan Veri richTextBox icine yaziliyor)

        public void ekranabas(string s)//gelen yaziları ekrana yazar

        {

            if (this.InvokeRequired)

            {

                ricdegis degis = new ricdegis(ekranabas);

                this.Invoke(degis, s);

            }

            else

            {

                s = "Client: " + s;

                richTextBox1.AppendText(s + "n");

            }

        }

        // Clintde Method_1 (Gelen veri okunuyor)

        public void okumayabasla()

        {

            ag = baglantikur.GetStream();//NetworkStream ag tipinde..baglantikur ise TcpClient tipinde GetStream ise tcp leri getiriyor

            // porta gelen verileri dinliyor

            oku = new StreamReader(ag);//gelen verileri yazmak için

            while (true)//gelen yazi bitisiye kadar döner

            {

                try

                {

                    string yazi = oku.ReadLine();

                    ekranabas(yazi);//gelen yaziları ekrana yazar

                }

                catch

                {

                    return;

                }

            }

        }

        // Clientde Method_3 (Istenilen IP'ye istenen Port üzerinden baglaniliyor)

        public void baglanti_kur()

        {

            try

            {

                //Ben Lochalhos üzerinde deneme yapacagim icin 127.0.0.1 verdim portlar aynı olacak server ile

                baglantikur = new TcpClient("127.0.0.1", Convert.ToInt16(textBox1.Text));//burada tcpclient ile bağlanıcaz

                t = new Thread(new ThreadStart(okumayabasla));

                t.Start();

                richTextBox1.AppendText(DateTime.Now.ToString() + " Baglanti kuruldu...n");

            }

            catch (Exception)

            {

                MessageBox.Show("Server ile baglanti kurulurken hata olustu !");

            }

        }

        private void button1_Click(object sender, EventArgs e)

        {

            System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;

            Thread t3 = new Thread(baglanti_kur);

            t3.Start();

        }

        private void button3_Click(object sender, EventArgs e)

        {

            baglantikur.Client.Close();

        }

        private void button3_Click_1(object sender, EventArgs e)

        {

            if (textBox2.Text == "")

                //Burda bos alan göndermeyi önlüyoruz...

                return;

            else

            {

                yaz = new StreamWriter(ag);//ag da ip ve port wardı...baglantikur ile aktarmıştık içine

                yaz.WriteLine(textBox2.Text);

                yaz.Flush();//geri değer döndurmek için

                richTextBox1.AppendText(textBox2.Text + "n");

                textBox2.Text = "";

            }

        }

        private void button2_Click_1(object sender, EventArgs e)

        {

            baglantikur.Client.Close();

        }

    }

}

2-)client.cs

1-)server.cs

using System;

using System.IO;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Net;

using System.Net.Sockets;

using System.Threading;

namespace server

{

    public partial class Form1 : Form

    {

        Thread t;

        IPAddress ipadresimiz;

        TcpListener dinle;

        //  Socket soket;

        //NetworkStream ag;

        // StreamReader oku;

        // StreamWriter yaz;

        public delegate void ricdegis(string text);

        public Form1()

        {

            InitializeComponent();

        }

        private void button3_Click(object sender, EventArgs e)

        {

            if (textBox2.Text == "")

                //Burda bos alan göndermeyi önlüyoruz...

                return;

            else

            {

                for (int i = 0; i < listem.Count; i++)

                {

                    Console.WriteLine("gönder sayi " + i);

                    StreamWriter yaz = new StreamWriter(listem[i]);//ag = kabul edilen client idi

                    yaz.WriteLine(textBox2.Text);//ag'a veri gonderiyoruz

                    yaz.Flush();//bağlanan cliente veriyi gonderdık

                }

                richTextBox1.AppendText(textBox2.Text + "\n");

                textBox2.Text = "";

            }

        }

        //public void ramazan1()//bunu yazmassam 2.client baglanamıyor nedenini

        //{

        //    //buradakileri list<> şeklinde yap hepsını

        //    //ag1 e mesaj gonder bakalım

        //    while (true)

        //    {

        //        Console.WriteLine("dinliyorum");

        //        Socket soket1 = dinle.AcceptSocket();

        //        NetworkStream ag1 = new NetworkStream(soket1);

        //        listem.Add(ag1);

        //        StreamReader oku1 = new StreamReader(ag1);

        //        while (true)

        //        {

        //            try

        //            {

        //                string yazi1 = oku1.ReadLine();

        //                ekranabas(yazi1);

        //            }

        //            catch

        //            {

        //                return;

        //            }

        //        }

        //    }

        //}

        public void ekranabas(string s)

        {

            if (this.InvokeRequired)//olmasada olur daha sonra kaldıracam

            {

                ricdegis degis = new ricdegis(ekranabas);//olmasada olur daha sonra kaldıracam

                this.Invoke(degis, s);//olmasada olur daha sonra kaldıracam

            }

            else

            {

                s = "Server: " + s;

                richTextBox1.AppendText(s + "n");//yazıları textboxa yazıyor

            }

        }

        List<NetworkStream> listem = new List<NetworkStream>();//ben

        static int client_sayisi = 0;

        public void yaz()

        {

            while (true)

            {

                try

                {

                    string yazi = oku.ReadLine();//soketten gelen yazıları okuyor

                    ekranabas(yazi);

                    Console.WriteLine("sonsuz buradamı");

                }

                catch

                {

                    return;

                }

            }

        }

        StreamReader oku;

        NetworkStream ag;

        Socket soket;

        public void okumayabasla()

        {

            while (true)

            {

                client_sayisi++;

                Console.WriteLine("client sayisi =  " + client_sayisi);

                 soket = dinle.AcceptSocket();//soketi kabul etti

                 ag = new NetworkStream(soket);//kabul edilen soketten veri almak için

                listem.Add(ag);//ben

                Console.WriteLine("listeye 1 client eklendi");

                for (int i = 0; i < listem.Count; i++)

                {

                    Console.WriteLine("sayi = " + i);

                    oku = new StreamReader(listem[i]);//kabul edilen soketten veri almak için

                    Thread s = new Thread(yaz);

                    s.Start();

                    //StreamReader sr = new StreamReader(listem[i]);

                    //richTextBox1.AppendText(sr.ReadToEnd());//hepsini yazar

                }

            }

        }

        public void dinlemeye_basla()

        {

            try

            {

                ipadresimiz = IPAddress.Parse("127.0.0.1");

                dinle = new TcpListener(ipadresimiz, Convert.ToInt16(textBox1.Text));

                dinle.Start();//dinlemeye başlıyor

                t = new Thread(new ThreadStart(okumayabasla));

                t.Start();

                richTextBox1.AppendText(DateTime.Now.ToString() + " Dinleme baslatildi...n");

            }

            catch (Exception e)

            {

                Console.WriteLine(e.Message);

                MessageBox.Show("Dinleme baslatilamadi");

            }

        }

        private void button1_Click_1(object sender, EventArgs e)

        {

            System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;

            Thread t2 = new Thread(new ThreadStart(dinlemeye_basla));

            t2.Start();

        }

        private void button2_Click_1(object sender, EventArgs e)

        {

            //ag.Close();

        }

    }

}

using System;

using System.IO;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Net;

using System.Net.Sockets;

using System.Threading;

namespace client

{

    public partial class Form1 : Form

    {

        //Yine gerekli Siniflarin nesneleri tanimlaniyor

        Thread t;

        TcpClient baglantikur;

        NetworkStream ag;

        StreamReader oku;

        StreamWriter yaz;

        public delegate void ricdegis(string text);

        public Form1()

        {

            InitializeComponent();

        }

        public void ramazan()

        {

            Thread t2 = new Thread(ramazan);

            t2.Start();

            ag = baglantikur.GetStream();

            oku = new StreamReader(ag);

            while (true)

            {

                try

                {

                    string yazi = oku.ReadLine();

                    ekranabas(yazi);

                }

                catch

                {

                    return;

                }

            }

        }

        // Clientde Method_2 (Okunan Veri richTextBox icine yaziliyor)

        public void ekranabas(string s)//gelen yaziları ekrana yazar

        {

            if (this.InvokeRequired)

            {

                ricdegis degis = new ricdegis(ekranabas);

                this.Invoke(degis, s);

            }

            else

            {

                s = "Client: " + s;

                richTextBox1.AppendText(s + "n");

            }

        }

        // Clintde Method_1 (Gelen veri okunuyor)

        public void okumayabasla()

        {

            ag = baglantikur.GetStream();//NetworkStream ag tipinde..baglantikur ise TcpClient tipinde GetStream ise tcp leri getiriyor

            // porta gelen verileri dinliyor

            oku = new StreamReader(ag);//gelen verileri yazmak için

            while (true)//gelen yazi bitisiye kadar döner

            {

                try

                {

                    string yazi = oku.ReadLine();

                    ekranabas(yazi);//gelen yaziları ekrana yazar

                }

                catch

                {

                    return;

                }

            }

        }

        // Clientde Method_3 (Istenilen IP'ye istenen Port üzerinden baglaniliyor)

        public void baglanti_kur()

        {

            try

            {

                //Ben Lochalhos üzerinde deneme yapacagim icin 127.0.0.1 verdim portlar aynı olacak server ile

                baglantikur = new TcpClient("127.0.0.1", Convert.ToInt16(textBox1.Text));//burada tcpclient ile bağlanıcaz

                t = new Thread(new ThreadStart(okumayabasla));

                t.Start();

                richTextBox1.AppendText(DateTime.Now.ToString() + " Baglanti kuruldu...n");

            }

            catch (Exception)

            {

                MessageBox.Show("Server ile baglanti kurulurken hata olustu !");

            }

        }

        private void button1_Click(object sender, EventArgs e)

        {

            System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;

            Thread t3 = new Thread(baglanti_kur);

            t3.Start();

        }

        private void button3_Click(object sender, EventArgs e)

        {

            baglantikur.Client.Close();

        }

        private void button3_Click_1(object sender, EventArgs e)

        {

            if (textBox2.Text == "")

                //Burda bos alan göndermeyi önlüyoruz...

                return;

            else

            {

                yaz = new StreamWriter(ag);//ag da ip ve port wardı...baglantikur ile aktarmıştık içine

                yaz.WriteLine(textBox2.Text);

                yaz.Flush();//geri değer döndurmek için

                richTextBox1.AppendText(textBox2.Text + "n");

                textBox2.Text = "";

            }

        }

        private void button2_Click_1(object sender, EventArgs e)

        {

            baglantikur.Client.Close();

        }

    }

}

2-)client.cs

 2021 Ocak 18 Pazartesi
 417