Socket Programlama Bölüm -1

Ebru Aksoylu —  28 Aralık 2014 — 4 Comments

Teknolojinin başdöndürücü ilerleyişi sürerken cihazların birbiriyle haberleşmesi , veri iletişimi ve cihaz(Client) – sunucu(Server) etkileşimli yazılımların ön plana çıkması kaçınılmaz bi hal aldı. Bu yazılımlarla birlikte cihazlardan gelen verilerin arayüzden istatistiki veriler ve raporlara dönüştürülmesi sağlanmış ve her sektöre hitap eden cihaz   – sunucu etkileşimli programlar ortaya çıkmıştır.

Peki ama nedir bu cihaz- sunucu etkileşimi?

Bir örnekle durumu ele alalım. Elimizde bir duman dedektörü ve dedektörden gelen sinyalleri algılayıp alarm oluşturan bir alıcı cihaz var. Alıcı cihazımız ,dedektörün duman algıladığı durumlarda alarm oluşturacak. Fakat ya alarmın oluştuğu saatleri kayıt altına almak istersek ? Ve bunu bir web , desktop yada mobil uygulama ile kullanıcılara sunmamız gerekirse napacağız ? Makalemizde bunu nasıl yapacağımızı aşama aşama kaleme alacağız.

Untitled-1

Dedektör ile Receiver’ın nasıl haberleştiğini anlatmayacağım. Bunlar cihazların marka , modeline ve haberleşme protokolüne göre değişen durumlardır. Biz daha çok Receiver’dan gelen sinyalin parçalanarak nasıl sunucudaki veritabanına yazılacağı ve bir arayüz vasıtası ile kullanıcıya sunulacağı ile ilgileneceğiz.

Cihazların sunucu ile haberleşmesini TCP ve UDP olarak iki yönlü ele alacağız. Biraz bunlardan bahsedelim…

TCP ile UDP protokolleri arasında gözle görülür belli başlı farklılıklar vardır. Tcp veri aktarımı için daha güvenli bir ortam sunar, fakat UDP ‘ye göre yavaştır. TCP ‘de veri paketlerinin karşı tarafa ulaşıp ulaşmadığı kontrol edilir. Veri düzenli ve sıralıdır. Paketin teslim garantisini isteyen uygulamalar TCP protokolünü kullanır. Fakat dezavantajı karşı taraf veriyi kabul etmediği sürece paket arkaya arkaya tekrar gönderilir. Ve belli bir süre sonra veri göndermeyi bırakabilir( kilitlenme durumu ).

UDP ise TCP ‘ye göre daha hızlıdır. Veri düzensiz ve sırasız olarak gönderilir. Fakat bu sizi yanıltmasın. Sadece UDP de verinin kabulu için karşıdan onay beklenmez. Bu sayede kilitlenmelerin önüne geçilir.

Sunucu etkileşimli bir cihaz haberleşmesi ve verilerinin izlenmesi için öncelikle dedektör ve alıcı cihaz arasında bağlantı kurulur. Bu bağlantı sağlandıktan sonra Alıcı cihaz’ın aldığı verileri sunucuya iletmesi için Cihaz’da hangi sunucuya ve porta yönlendirileceği bilgisi verilir.

IP ve Port bilgisi sinyallerin alınacağı cihaza tanımlandıktan sonra sunucumuzdan haberleşmeyi sağlaması için UDP olarak Port açmalıyız. Cihazların sunucu ile iletişime geçmesini sağladıktan sonra ( ki zaten her cihazın kılavuzunda bu ayrıntılı olarak ele alınmaktadır ) port dinleme programını yazmaya başlayabiliriz…

2. Bölümde Socket Programcılarının “Port Dinleyici” olarak tanımladıkları sunucu programını yazmaya başlayacağız.

Ebru Aksoylu

Ebru Aksoylu

Posts Facebook

Bilgisayar bilimleri tutkunu ve malulen emekli voleybol oyuncusu. Sektörde Full Stack Developer ve Takım Liderliği gibi görevlerde bulundu. Şuan bir banka iştirakinde uyg. geliştirme müdür yardımcısı olarak çalışıyor.

4 responses to Socket Programlama Bölüm -1

  1. Guzel bir seri olmus. Devamini bekliyorum. 🙂 Tebrik ederim.

    Bildigim kadariyla UDP sadece ayni network uzerinde kullanilabiliyor. Aklima geldi. Bununla ilgili ne dusunuyorsunuz? Dedektor’u sadece ayni agda kullanma kisiti nasil etkiler? Uzaktan kullanabilme avantajli midir?

  2. Ebru Aksoylu

    Öncelikle teşekkür ederim Tahsin Bey . Devamı geliyor. Bugün yayınlayacağım. Udp konusuna gelince. Evet Udp ‘nin sadece aynı network üzerinden haberleşmede kullanılan bir kanal olduğu birçok kişi tarafından dile getirilen bir yanlıştır. Biz UPD ‘den haberleşmeyi sadece Server tarafında kullanıyoruz.

    Koordinatör dediğimiz Alıcı-Gönderici cihazlar veriyi UDP yada TCP port’a yazabilir. Sinyal UDP porta gelene kadar cihazın tipine göre radyo frekans , ethernet ya da GPRS vasıtası ile verilerini iletebilir. Yani Cihazınız Türkiye’nin bir ucundan diğer ucundaki Sunucuya UDP portundan veri yazabilir.

  3. Türkçe kaynaklar arasındaki en değerli konu başlıklarından biri. Örnek olacak yazı dizisinin başlangıcı için tebrikler. Konu yeterince açık, anlaşılır olmuş. 🙂

  4. merhaba ebru abla benim takıldığım bir konu var ben şu an basit bir sohbet programı üzerinde çalışıyorum. Ama sadece sunucu(SERVER) ve istemci(CLIENT) arasında bağlantı kurabiliyorum. iki CLIENT arasında nasıl bağlantı kurabilirim

Yorum yapmak için