Provided by: manpages-tr_2.0.6-2_all bug

İSİM

       connect - soket üzerinde bağlantı oluşturur

BİLDİRİM

       #include <sys/types.h>          /* NOTLAR’a bakın */
       #include <sys/socket.h>

       int connect (int sockfd, const struct sockaddr *addr, socklen_t addrlen);

AÇIKLAMA

       connect() sistem çağrısı, sockfd ile belirtilen soketi addr ile belirtilen adrese bağlar.
       addrlen ile addr boyutu belirlenir. addr içindeki adresin biçimi, sockfd soketinin adres
       uzayı tarafından belirlenir; daha ayrıntılılı bilgi için socket(2) sayfasına bakılabilir.

       Eğer soket sockfd SOCK_DGRAM türünden ise, addr, verilerin gönderildiği ve alındığı
       öntanımlı adres olur. Eğer soket SOCK_STREAM veya SOCK_SEQPACKET türünden ise, sistem
       çağrısı, addr ile ilişkilendirilen soketle bağlantı kurmaya çalışır.

       Bazı protokol soketleri (örneğin UNIX alanı akım soketleri) sadece bir kere başarıyla
       connect() yapabilir.

       Bazı protokol soketleri (örneğin UNIX ve İnternet alanları içerisindeki veri soketleri)
       bağlantılarını değiştirmek için connect()’i çok kez kullanabilir.

       Bazı protokol soketleri (örneğin UNIX ve İnternet alanları içerisindeki TCP ve veri
       soketleri) sockaddr’in sa_family üyesi AF_UNSPEC olarak ayarlanmış bir adrese bağlanarak
       ilişkiyi çözebilir; sonrasında, soket bir başka adrese bağlanabilir. (AF_UNSPEC Linux’da,
       çekirdek 2.2’den itibaren desteklenmektedir.)

DÖNÜŞ DEĞERİ

       Bağlantı veya ilişkilendirme bşarılı ise sıfır döner. Hata durumunda -1 dönder ve hata
       errno değişkenine atanır.

HATALAR

       Aşağıdaki hatalar genel soketler içindir. Diğer alanların özelinde başka hata kodları
       olabilir.

       EACCES
           Dosya yoluna göre tanınan UNIX alan soketleri için: soket dosyası için yazma izni veya
           dosya yolundaki bir dizin için arama izni reddedilmiş. (Ayrıca path_resolution(7)
           sayfasına bakın.)

       EACCES, EPERM
           Kullanıcı, soket için yayın bayrağını etkinleştirmeden yayın adresine bağlanmaya
           çalışmış ya da yerel güvenlik duvarı kuralı yüzünden bağlantı isteği başarılı olmamış.

           SElinux protokolü bağlantıyı reddederse de EACCES dönebilir (örneğin, HTTP vekilinin
           sadece HTTP sunucularıyla birleştirilmiş portlara bağlanabileceğine dair bir protokol
           varsa, ve vekil başka bir porta bağlanmaya çalıştıysa).

       EADDRINUSE
           Yerel adres kullanımda.

       EADDRNOTAVAIL
           (İnternet alanı soketleri için) sockfd ile belirtilen soket, önceden bir adres ile
           ilişkilendirilmemiş ve soketi geçici bir portla ilişkilendirmeye çalışırken geçici
           port aralığındaki tüm portların kullanımda olduğu anlaşılmış. ip(7) sayfasındaki
           /proc/sys/net/ipv4/ip_local_port_range ile ilgili açıklamaya bakınız.

       EAFNOSUPPORT
           Belirtilen adresin sa_family alanındaki adres ailesi doğru değil.

       EAGAIN
           Engellemesiz UNIX alan soketler için, soket engellemesiz ve bağlantı hemen
           tamamlanamıyor. Diğer soket aileleri için, yönledirme önbelleğinde yeterli girdi yok.

       EALREADY
           Soket engellemesiz ve bir önceki bağlantı girişimi tamamlanamamış.

       EBADF
           Belirtilen sockfd uygun bir açık dosya tanıtıcısı değil.

       ECONNREFUSED
           Aktarım soketi üzerinde connect(), dinleme yapmayan bir adrese yapılmış.

       EFAULT
           Soket adres yapısı, kullanıcı adres uzayının dışında.

       EINPROGRESS
           Soket engellemesiz ve bağlantı hemen tamamlanamıyor. (Başarısız UNIX alan soketleri
           bunun yerine EAGAIN ile döner.) select(2) veya poll(2) ile soketi yazmak için seçerek
           bağlantıyı tamamlamak mümkündür. select(2) yazılabilirliği gösterdikten sonra,
           getsockopt(2) kullanarak SOL_SOCKET seviyesinde SO_ERROR ayarını okuyup connect()’in
           başarılı olduğu (SO_ERROR sıfır olur) veya olmadığı (SO_ERROR burada listelenen bir
           hata kodu olur ve hatanın sebebini açıklar) belirlenir.

       EINTR
           Sistem çağrısı bir sinyal ile kesilmiş; signal(7) sayfasına bakın.

       EISCONN
           Soket zaten bağlı.

       ENETUNREACH
           Ağa ulaşılamıyor.

       ENOTSOCK
           Belirtilen sockfd’nin bir soketle ilgisi yok.

       EPROTOTYPE
           Soket türü istenilen iletişim protokolünü desteklemiyor. Bu hata, örneğin UNIX alan
           veri soketini aktarım soketine bağlamaya çalışıldığında oluşabilir.

       ETIMEDOUT
           Bağlama girişimi sırasında zaman aşımı. Sunucu yeni bağlantıları kabul edemeyecek
           kadar yoğun olabilir. Sunucuda eşzamanlı çerezler etkinleştirildiğinde IP soketleri
           için zaman aşımı çok uzun olabilir.

UYUMLULUK

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD (connect() ilk defa 4.2BSD ile ortaya çıktı).

NOTLAR

       POSIX.1’de, <sys/types.h> dahil edilmeyi gerektirmez ve yine bu başlık dosyası Linux’da da
       gerekmez. Fakat bazı tarihsel (BSD) uygulamalardan ötürü bu başlık dosyasının olması
       gerekir ve uygulamaların taşınabilirliği için dahil edilmesi akıllıca olacaktır.

       socklen_t’nin arka planı için accept(2) sayfasına bakın.

       Eğer connect() başarılı olmazsa, soketin durumu belirtilmemiş olarak kabul edilir.
       Taşınabilir uygulamalar tekrar bağlanmak için soketi kapatmalı ve yeni bir tane
       oluşturmalıdır.

ÖRNEKLER

       connect()’in örnek kullanımı getaddrinfo(3) sayfasında verilmiştir.

İLGİLİ BELGELER

       accept(2), bind(2), getsockname(2), listen(2), socket(2), path_resolution(7), selinux(8)

ÇEVİREN

       © 2022 Fatih Koçer
       Bu çeviri özgür yazılımdır: Yasaların izin verdiği ölçüde HİÇBİR GARANTİ YOKTUR.
       Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri yapmak için
       https://github.com/TLBP/manpages-tr/issues adresinde "New Issue" düğmesine tıklayıp yeni
       bir konu açınız ve isteğinizi belirtiniz.