Bağlantıların Dinlenmesi
Önceki Soketlerin Bağlantılarla Kullanılması Sonraki
Bağlantıların Dinlenmesi
Şimdi sunucu sürecin soket üzerinden bağlantıları kabul etmek için ne yapması gerektiğini inceleyelim. Öncelikle sokete gelen bağlantı isteklerini alabilmesi için isten işlevini kullanması gerekli, ardında da gelen her bağlantıyı kabul etmek için accept işlevini çağırmalıdır(Bkz. Bağlantıların Kabul Edilmesi). Sunucu soketi üzerinde bağlantı isteği olduğunda, select işlevi soketin bağlantı kabul etmek için ne zaman hazır olacağını bildirir (Bkz. Girdi ve Çıktının Beklenmesi).
listen işlevi bağlantısız iletişim tarzı kullanılan soketler için kullanılamaz.
Bir bağlantı isteği gelene kadar çalışmaya başlamayan ağ sunucusu bile yazabilirsiniz. Bkz. inetd Sunucuları.
Internet isim alanında, port erişimini kontrol için özel bir koruma mekanizması yoktur, herhangi bir makinedeki bir süreç sunucunuza bağlanabilir. Sunucunuza erişimi kısıtlamak istiyorsanız ya sunucunuzun bağlantı isteğinde bulunan adresi incelemesini sağlayın ya da başka bir uzlaşma veya kimlik doğrulama protokolü uygulayın.
Yerel isim alanında ise, bildiğimiz dosya koruma bitleri sokete bağlanmak için kimin erişim hakkı var kontrol eder.
int listen
(int          soket,
 unsigned int n)
işlev
listen işlevi bağlantıları kabul edecek soket soketini etkinleştirir, böylece sunucu soketi olur.
n argümanı bekleyen bağlantılar için kuyruk uzunluğunu belirler. Kuyruk dolunca, bağlanmak için teşebbüs eden yeni istemciler, sunucu kuyrukta bekleyen bir bağlantı için accept işlevini çağırana kadar ECONNREFUSED hatası ile sonlanırlar.
listen işlevi başarı durumunda 0, başarısızlıkta -1 döndürür. Aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
EBADF
soket soketi geçerli bir dosya tanımlayıcı değil.
ENOTSOCK
soket dosya tanımlayıcısı bir soket değil.
EOPNOTSUPP
soket soketi bu işlemi desteklemiyor.
Önceki Üst Ana Başlık Sonraki
Bir Bağlantının Oluşturulması Başlangıç Bağlantıların Kabul Edilmesi
Bir Linux Kitaplığı Sayfası