Archive Pages Design$type=blogging

Socket Programlama Mantığı

İstemci cihaz, sunucu cihaza bağlanmak için sorgu gönderir, sunucu cihaz bu sorguyu kabul eder ve ardından bağlantı gerçekleşmiş olur. Soket programlamanın mantığı kabaca böyledir.

socket programlama mantığı

Socket Programlama

Diyelim ki bir trojan geliştirmek istiyorsunuz ya da WhatsApp gibi bir mesajlaşma uygulaması veya çoklu oyuncu desteği olan çevrimiçi bir oyun. Tüm bu uygulamaları geliştirebilmek için kaçınılmaz şekilde ortak bir yapı kullanmak zorundasınız. Çünkü bu saydığımız uygulamalar sunucu (server) ve istemci (client) tabanlı uygulamalardır. Peki bu ne demek? Bir mesajlaşma uygulaması üzerinden açıklamaya çalışayım, şöyle ki; mesajlaşabilmek için bildiğiniz üzere en az 2 kişi olmalısınız yani iki farklı cihazın birbiri ile bağlantı kurması ve veri alışverişi yapabilir durumda olması gerekmekte. Tabii bu bağlantı kurma ve veri alışverişi yapabilme durumu bir prosedür üzerinden ilerliyor, işte bu prosedür soket programlama dediğimiz şeyin ta kendisi. Prosedürün işleyişi her zaman için aynıdır; istemci cihaz, sunucu cihaza bağlanmak için sorgu gönderir, sunucu cihaz bu sorguyu kabul eder ve ardından bağlantı gerçekleşmiş olur. Soket programlamanın mantığı kabaca böyledir. Bir soket program yazıyorsak kullanacağımız 3 değer vardır. İlki sunucu bilgisayarın dış ip adresi (external ip), ikincisi iletişim için kullanılacak protokol ve son olarak da port adresi. Soket uygulamalarda iletişim için TCP (transmission control protocol) ve UDP (user datagram protocol) protokolleri kullanılmaktadır. Hemen bu protokolleri tanıyarak devam edelim.

TCP

UDPden en önemli farkı güvenli veri alışverişi sağlamasıdır. Gönderici, veriyi gönderirken aynı zamanda bir de kontrol mesajı ile verinin alıcı tarafından alınıp alınmadığını teyit eder, eğer veri alıcıya ulaşmamışsa tekrar gönderir. İşte tam da bu yüzden mesajlaşma ve dosya transfer uygulamaları gibi 1 byte'ın dahi önem taşıdığı uygulamalarda TCP protokolünü kullanmamız gerekir.

UDP

TCP'ye nazaran daha hızlı ancak güvensiz bir iletişim protokolüdür. Gönderici, veriyi alıcıya gönderir ancak alıcı tarafından verinin alınıp alınmadığını kontrol etmez, bu yüzden de veri transferinde kayıplar yaşanabilir. Veri transferinde gönderim hızının veri kayıplarından daha önemli olduğu uygulamalarda kullanılır. Örneğin görüntülü ve sesli konuşma uygulamalarında kullanılabilir. Fark etmişsinizdir, görüntülü konuşmalarda bazen karşı tarafın görüntüsünün arada donduğu veya bulanıklaştığı olmuştur. Bu durumun sorumlusu UDP protokolüdür.

Bir soket yazılım aracılığı ile veri transferi yapmak istiyorsak bağlantı kuracağımız bilgisayarın yalnızca ip adresini bilmemiz yeterli değil. Birbirinden bağımsız tüm veri transferlerinin gerçekleştirilebilmesi için port adreslerini de kullanmak zorundayız. Mesela aynı anda hem internetten dizi izliyor hem program indiriyor hem de mesajlaşıyor olabilirsiniz. İşte tüm bu işlemlerin aynı anda ve sorunsuz gerçekleşmesi için portları kullanmak zorundayız. Soket programlamanın işleyişi bu şekildedir. Konunun daha iyi kavranması adına soket programlama ile ilgili bir sonraki makalemde örnek bir proje hazırlayacağım, takipte kalarak örnek projeyi inceleyebilirsiniz.

Yorumlar

Blogger: 1
Loading...
Ad

AdSense Blogger CSS Nedir Paylasabildiklerim PHP SEO Teknoloji TeorikBilgiler Webmaster WordPress
false
ltr
item
Taha Çetiner: Socket Programlama Mantığı
Socket Programlama Mantığı
İstemci cihaz, sunucu cihaza bağlanmak için sorgu gönderir, sunucu cihaz bu sorguyu kabul eder ve ardından bağlantı gerçekleşmiş olur. Soket programlamanın mantığı kabaca böyledir.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2ntq2uPcxDxptHKZT09AKcEIHzlK9U19C2224w7ohK5kDD_Kx5JKpwpjykqhIzNvr0PSl72OK31l8tjjcvqgU6S1h5cQlf3Ib5yX9x0jDnILCNo1NAuxvhVCRU6MSimEQOPy1et7Samw/s1600/socket-programlama-mantigi.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2ntq2uPcxDxptHKZT09AKcEIHzlK9U19C2224w7ohK5kDD_Kx5JKpwpjykqhIzNvr0PSl72OK31l8tjjcvqgU6S1h5cQlf3Ib5yX9x0jDnILCNo1NAuxvhVCRU6MSimEQOPy1et7Samw/s72-c/socket-programlama-mantigi.jpg
Taha Çetiner
https://tahacetiner.blogspot.com/2016/11/socket-programlama-mantg.html
https://tahacetiner.blogspot.com/
https://tahacetiner.blogspot.com/
https://tahacetiner.blogspot.com/2016/11/socket-programlama-mantg.html
true
146515384480327288
UTF-8
Herhangi bir içerik bulunamadı Tümünü göster Devamını Gör Cevapla Iptal Sil Yazar: Anasayfa Sayfalar Yazılar Tümünü Görüntüle Önerilenler Etiket Arşiv Ara Aradığınız kelime ile ilgili hiçbir içerik bulunamadı Anasayfaya Dön Pazar Pazartesi Salı Çarşamba Perşembe Cuma Cumartesi Pzr Pzrts Salı Çarş Perş Cuma Cmrts Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık şimdi 1 dakika önce $$1$$ dakika önce 1 saat önce $$1$$ saat önce Dün $$1$$ gün önce $$1$$ hafta önce bir kaç hafta önce