Bu işlev soket sunucu soketindeki bir bağlantı isteğini kabul etmek için kullanılır.
accept işlevi,
soket soketi için baskılanamayan kip seçilmediği sürece, süren bir bağlantı yoksa bekler. (baskılanamayan soketlerde de
select işlevini kullanarak süren bağlantıların bitmesini beklemek mümkündür.)
Dosya Durum Seçenekleri, baskılanamayan kip hakkında bilgi içerir.
adres ve
uzunluk_gstr argümanları bağlantıyı başlatan istemci soketinin ismi hakkında bilgi döndürür. Bilginin biçimi hakkında bilgi edinmek için
Soket Adresleri bölümüne bakınız.
Bağlantının kabul edilmesi ile bağlantı soket soketinden yapılmaz. Bunun yerine, bağlantı yapılacak yeni bir soket oluşturulur. accept işlevinin normal dönüş değeri yeni soketin dosya tanımlayıcısıdır.
accept işlevinin ardından, soket soketi bağlantısız ve açık olarak kalır ve kapatılıncaya kadar dinlemeye devam eder. soket ile accept işlevini tekrar çağırarak başka bağlantılar kabul edebilirsiniz.
Hata oluşursa accept -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 dosya tanımlayıcısı bu işlemi desteklemiyor.
- EWOULDBLOCK
soket soketi baskılanamayan kipte ve bekleyen bir bağlantı yok.
Bu işlev çok evreli yazılımlar için iptal noktası olarak tanımlanmıştır, bu nedenle ayrılan özkaynakların (bellek, dosya tanımlayıcısı, semafor veya her hangi başka bir kaynak) evre iptal edilse dahi serbest bırakılmasının sağlanması şarttır.
accept işlevi bağlantısız iletişim tarzlarını kullanan soketler için kullanılamaz.