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