Evet, çocuklar, ekranda dört pencere görebilirsiniz.
Bu dört pencerede, Unix etki alanı sunucu işlemini
ve Unix etki alanı istemci işlemini çalıştıracağım.
Sol üst pencerede bir sunucu nokta c dosyası var.
Bu dosyayı derleyebilir ve bir çalıştırılabilir dosya oluşturabilirsiniz, böylece sunucu
sürecimizin ana soket dosya tanımlayıcısını oluşturduğunu, bind sistem çağrısını
başarıyla çağırdığını ve şimdi select sistem çağrısını beklediğini görebilirsiniz.
Şimdi pencerelerin geri kalanında istemci programını çalıştıracağım.
Bu nedenle, istemci programının daha önce tartıştığımız programla tamamen aynı olduğunu unutmayın.
Müşteri programında kesinlikle hiçbir değişiklik yoktur.
İşte burada, basitçe istemci programını çalıştırıyorum ve sunucu sürecimizin bu yeni istemciden
gelen bağlantıyı kabul ettiğini ve şimdi tekrar select sistem çağrısını beklediğini görebilirsiniz,
böylece sunucu sürecimiz başka bir yeni istemciden gelen bağlantıyı kabul edebilecek ve
zaten bağlı olan istemciden gelen veri talebini kabul edebilecek bir konumda olabilir.
Üçüncü pencerede yine istemci programını çalıştırıyorum ve sunucu sürecimizin
şu anda iki istemciden gelen bağlantıyı kabul ettiğini görebilirsiniz.
Şimdi.
Yani iki istemci şu anda sunucu sürecimize bağlı durumdadır.
Benzer şekilde, şimdi üçüncü müşteriye başlıyorum.
Böylece bu istemcinin de artık sunucu sürecimize bağlı olduğunu görebilirsiniz.
Yani şu anda sunucu sürecimize üç istemci bağlı durumda.
Şimdi sunucu sürecimizin tüm bu istemciler tarafından herhangi bir
sırada gönderilen tüm tamsayı değerlerinin toplamını hesaplayıp hesaplayamayacağını görelim.
Diyelim ki C1 istemcisi, yani bu istemci sunucu sürecimize bir, iki ve üç
değerlerini gönderiyor ve C2 istemcisi de sunucu sürecimize yedi ve sekiz değerlerini gönderiyor.
Ve diyelim ki üçüncü istemci sunucu sürecimize 10 ve 20 değerlerini gönderdi.
Dolayısıyla, bu noktada, sunucu sürecimiz bu istemcilerin her biri
tarafından gönderilen tüm tamsayı değerlerinin toplamını hesaplamış olmalıdır.
Ve tabii ki sunucu sürecimiz, istemci süreç
tarafından gönderilen tamsayı değerine göre sonucu döndürmelidir.
Ve tabii ki sunucu sürecimiz tamsayı değerlerinin toplamını her bir istemci bazında tutmak zorundadır.
Diyelim ki C1 istemcisi sunucu sürecine sıfır gönderiyor.
Dolayısıyla, bu istemcinin sunucudan sonuç olarak altı almasını bekliyorum.
Yani sunucudan altı sonuç alıyor.
Benzer şekilde, C2 istemcisi sıfır gönderiyorsa, bu
istemcinin sunucudan 15 almasını bekliyorum ve alıyor.
Bu da sunucu sürecimizin, bağlı istemcilerin sonuçlarını tüm
durum makinesi diyagramında birbirlerinden ayrı tutabildiği anlamına gelmektedir.
Ve benzer şekilde, üçüncü istemci sunucuya sıfır değerini gönderirse,
bu da beklenen sonucu, yani 30 değerini alır.
Böylece sunucu sürecimizin aynı anda birden fazla
müşteriyi sorunsuz bir şekilde idare edebildiğini görebilirsiniz.
Sadece bu da değil, istemci süreçleri tamsayı değerlerini
sunucuya herhangi bir sırada veya sırayla gönderebilir.
Üçüncü nokta ise, sunucumuz bağlı istemciye hizmet sağlamakla meşgulken, dördüncü
bir istemci gelip bağlantı başlatma isteği göndererek sunucumuzla iletişime katılabilir
ve sunucumuz kesinlikle bu bağlantı başlatma isteğini de işleyebilir.
Sunucu sürecimiz halihazırda bağlı olan istemcilere veri talebi sunmanın ortasındayken.
Bu nedenle, aynı anda birden fazla istemciyi idare edebilen eksiksiz bir multipleks sunucu uyguladık.