İstemci Sunucu Kavramı ve Örnek Tasarımlar Soket programlama IPC (interprocess communication) mimarisinde sıklıkla tercih edilen metotlardandır. Pek çok uygulama bu kavramı kullanmaktadır. En basitinden internet üzerinden oynanan bir tavla uygulaması soket programlama kullanılarak yapılabilir. Soket programlama için temel iki kavram olan istemci ve sunucuyu açıklayalım. İstemciden çok sayıda olabilir. Sunucudan bir tane olacaktır. Aslında bu … Continue reading Soket Programlama – 1
Category: network programming
Soket Programlama – 2
Basit bir Sunucu Yapalım Bu yazımızda basit bir sunucu yazılımı yapacağız. Bunu temel bazı kavramları yeri geldikçe açıklayarak yapalım. Beklentilerinizin aksine malesef bu sunucu multi-threaded değil single threaded olacaktır. Bu yöntemin seçilmesinin sebebi, asıl amaç olan istemci-sunucu kavramına odaklanılması içindir. Multi-threading kavramını başka bir yazımız için planlayıp konumuza dönelim. Soket (socket) nedir? Soket aslında iki … Continue reading Soket Programlama – 2
TCP Ne kadar güvenilir – 1
Bu yazımızda kısaca TCP protokolündeki bazı hususları irdeleyeceğiz. TCP’yi okulda öğretilenden biraz daha farklı olarak tecrübelerle aktarmayı düşünüyorum. Muhtemelen TCP denince aklımıza reliable kavramı geliyordur. Ben bu detayların aksine günlük hayatta karşımıza çıkabilecek hatta çıkmış olsa bile bu problemi genellikle bir framework kullandığımız için farketmediğimiz durumları ifade etmeye çalışacağım. Tahmin edileceği gibi bir adet sunucu … Continue reading TCP Ne kadar güvenilir – 1
Network Programlama
Giriş: Yeni bir yazı yazmanın zamanı geçiyordu bile. Bu yazımızda istemci tarafını yazalım. İstemci için daha az bilgiye ihtiyacımız var. Bir önceki yazımızda (Soket Programlama – 2) sunucuya bağlanmak için telnet veya netcat programını kullanmıştık. Bu yazımızda kendi istemcimizle sunucumuza bağlanacağız. Sunucumuzun tek mesajlık gücü vardı hatırlarsanız. İstemci Yapalım: Bu işlem için sunucuya bağlanmak için … Continue reading Network Programlama
TCP Ne Kadar Güvenilir – 2
Bu yazımızda TCP’nin sıklıkla karşılaşılmayabilecek, ancak kritik bir problemini açıklayacağız. Bu problemi açıklamadan önce send() ve recv() metotlarının aslında TCP stack’i aracı yaparak işlevlerini gördüklerini ifade etmiştik. Bir soket kapandığı zaman kapatmayı tetikleyen yazılımın bulunduğu bilgisayardaki TCP stack’in karşı taraftak TCP stack’a durumu bildirdiğini ifade etmiştik. Bu cümleyi ne kadar tekrarlasak o kadar önemli, çünkü … Continue reading TCP Ne Kadar Güvenilir – 2
TCP Ne Kadar Güvenilir – 3
Bir önceki yazımızda (TCP Ne Kadar Güvenilir – 2) recv() metoduna kafayı takmıştık. recv() metodu çağrılması esnasında karşı uçtaki cihazın bir sebeple tamamen erişilemez olması durumunda (örneğin elektrik kesilmesi, ağ kablosunun çekilmesi/kopması, cihazın reset alması vb.) recv()’in dönmediğini ifade etmiştik. Bu durumu bir örnekle göstermiştik. Aslında eğer sanallaştırma yapabilme imkanınız varsa (örneğin VirtualBox), kablo bağlantısını … Continue reading TCP Ne Kadar Güvenilir – 3