Root > Documents > Programlama > C# ile Socket’e Giris
Cyber-Warrior.Org \ Doküman \ Programlama > C# ile Socket’e Giris
Madde
  Yazar : Fahrüddin
  Date : 14.01.2010 15:17:47
 
# C# ile Socket’e Giris
 

Sa arkdaslar Bir makale ile yine karsinizdam bu makalemde socket programlamaya giris yapacagiz. Bu makalede TCP protokolüyle basit bir Client/Server programi yapacagiz.Yapacagimiz uygulama  küçük bir mesajlasma sistemi olcak server console da yaptigimiz bir uygulama olacak client ise Windows Form’u olcak .

 

~~TcpListener Sinifi~~

 

TcpListener sinifi TCP protokolü ile çalisan servislere baglanmamizi saglar.

Parametre olarak bizden Ip Ver Port Ister. Arkadaslar Ip üzerinde Duralim Ip Bilgisayarimizin Kimlik numarasidir ag ortaminda fakli ( 192.168.1.100 ) Internet üzerinde farkli( 88.255.83.153) dir

Port Kapi anlamina gelir,genellikle dört haneli rakam alir örnek olarak .Sql Server’in port numarasi 1433’tür.Arkadaslar TcpListener Isminden de anlanilacagi gibi dinler  nasi?Bir Sirkete girdiniz Karsiniza gelecek Olan Kapidir( Port ) kapiyi açtiktan sonra Herhangi bir odaya girersiniz( Ip) insallah anlamissinizdir.

~~NetworkStream Sinifi~~

 

Yapacagimiz projede client’ten server’a mesaj yollaya bilmek Stream Kullanmamiz lazim böyle islemler içinde NetworkStream Kullaniyoruz(Not:Bu Sinifi Kullanabilmek Için System.IO Ekli olmasi gerekir.

 

~~TcpClient~~

 

Tcp servislerine baglanti saglamak için TcPClient sinifi kullanilir.

 

Connect();

 

Bu Metod ile Baglanti Kurulur Parametre olarak Ip Ve Port Alir

 

GetStream();

Bu metod ile belirtilen port tan gelen veriler bir NetworkStream nesnesine aktarilir. GetStream metodunun geri dönüs degeri NetworkStream oldugu için atama islemini NetworkStream türünden bir nesneye yapmamiz gerekir.

Bilgileri Aldik Hadi Projeye GeçelimJ

Console Ugulamasi

Server Tarafi

namespace ServerApp

{

    class Program

    {

        static void Main(string[] args)

        {

            TcpListener listener = new TcpListener(IPAddress.Any, 7777);

            listener.Start();

            Console.WriteLine("Dinleme basladi..");

            for (; ; )

            {

                TcpClient client = listener.AcceptTcpClient();

                if (client.Available == 0) continue;

                Console.WriteLine("Biri geldi..");

                Stream stream = client.GetStream();

                byte[] data = new byte[client.Available];

                stream.Read(data, 0, data.Length);

                string text = Encoding.Default.GetString(data);

                Console.WriteLine(text);

                stream.Flush();

            }

}

}

 

 

 

Client Uygulamasi Windows App

Button Click Olayi

private void button1_Click(object sender, EventArgs e)

        {

           string yazi = "Emrah: " + textBox1.Text;

           byte[] gidecekData = Encoding.Default.GetBytes(yazi);

           TcpClient client = new TcpClient();

           client.Connect("Ag Ortamindaki IP’niz Ornek(10.8.25.36)", 7777);

           Stream stream = client.GetStream();

           stream.Write(gidecekData, 0, gidecekData.Length);

           stream.Flush();

        }

                                Medrese-i Yusufiue-Fahrüddin-Emrah Çapar

   
   
Cyber-Warrior TIM All Legal and illegal Rights Reserved.\CWDoktoray 2001©