Soket nedir?

Soketler, aynı veya farklı makinelerde iki farklı işlem arasında iletişime izin verir. Daha kesin olmak gerekirse, standart Unix dosya tanımlayıcılarını kullanarak diğer bilgisayarlarla konuşmanın bir yoludur. Unix'te, her G / Ç işlemi bir dosya tanımlayıcısı yazarak veya okuyarak yapılır. Bir dosya tanımlayıcı, açık bir dosya ile ilişkili bir tam sayıdır ve bir ağ bağlantısı, bir metin dosyası, bir terminal veya başka bir şey olabilir.

Bir programcıya göre, bir soket, düşük seviyeli bir dosya tanımlayıcı gibi görünür ve davranır. Bunun nedeni, read () ve write () gibi komutların, dosyalar ve borularla aynı şekilde soketlerle çalışmasıdır.

Soketler ilk olarak 2.1BSD'de tanıtıldı ve daha sonra 4.2BSD ile mevcut formlarına iyileştirildi. Soketler özelliği artık en güncel UNIX sistem sürümlerinde mevcuttur.

Soket Nerelerde Kullanılır?

İstemci-sunucu uygulama çerçevesinde bir Unix Soketi kullanılır. Sunucu, bir istemcinin isteği üzerine bazı işlevleri yerine getiren bir işlemdir. FTP, SMTP ve POP3 gibi uygulama düzeyindeki protokollerin çoğu, istemci ile sunucu arasında bağlantı kurmak ve ardından veri alışverişi yapmak için soketlerden yararlanır.

Soket Tipleri

Kullanıcıların kullanabileceği dört tür soket vardır. İlk ikisi en yaygın olarak kullanılır ve son ikisi nadiren kullanılır.

İşlemlerin yalnızca aynı türdeki soketler arasında iletişim kurduğu varsayılır, ancak farklı türlerdeki soketler arasındaki iletişimi engelleyen bir kısıtlama yoktur.

  • Stream Sockets- Ağ bağlantılı bir ortamda teslimat garantilidir. Akış soketinden üç öğe "A, B, C" gönderirseniz, bunlar aynı sırada - "A, B, C" gelir. Bu soketler veri iletimi için TCP (İletim Kontrol Protokolü) kullanır. Teslimat imkansızsa, gönderen bir hata göstergesi alır. Veri kayıtlarının herhangi bir sınırı yoktur.

  • Datagram Sockets- Ağa bağlı bir ortamda teslimat garanti edilmez. Bağlantısızdırlar çünkü Akış Soketlerindeki gibi açık bir bağlantıya sahip olmanız gerekmez - hedef bilgileriyle bir paket oluşturur ve gönderirsiniz. UDP (Kullanıcı Datagram Protokolü) kullanırlar.

  • Raw Sockets- Bunlar, kullanıcıların soket soyutlamalarını destekleyen temel iletişim protokollerine erişimini sağlar. Bu soketler normalde datagram yönelimlidir, ancak tam özellikleri protokol tarafından sağlanan arayüze bağlıdır. Ham soketler genel kullanıcı için tasarlanmamıştır; bunlar esas olarak yeni iletişim protokolleri geliştirmekle ilgilenenler veya mevcut bir protokolün daha şifreli tesislerinden bazılarına erişim sağlamak için sağlanmıştır.

  • Sequenced Packet Sockets- Kayıt sınırlarının korunması dışında bir akış soketine benzerler. Bu arabirim, yalnızca Ağ Sistemleri (NS) soket soyutlamasının bir parçası olarak sağlanır ve çoğu ciddi NS uygulamalarında çok önemlidir. Sıralı paket soketleri, kullanıcının bir paket veya bir grup paket üzerindeki Sıralı Paket Protokolü (SPP) veya İnternet Datagram Protokolü (IDP) başlıklarını, gönderilecek olan verilerle birlikte bir prototip başlığı yazarak veya tüm giden verilerle kullanılacak varsayılan bir başlık belirleme ve kullanıcının gelen paketler üzerindeki başlıkları almasına olanak sağlar.

Sırada ne var?

Sonraki birkaç bölüm, soket kullanarak Sunucu ve İstemci programları yazmadan önce temel bilgilerinizi güçlendirmek ve bir temel hazırlamak amacını taşımaktadır . Bir istemci ve sunucu programının nasıl yazılacağını görmek için doğrudan atlamak istiyorsanız, bunu yapabilirsiniz, ancak bu önerilmez. Programlamaya geçmeden önce adım adım ilerlemeniz ve bu ilk birkaç bölümü tamamlamanız şiddetle tavsiye edilir.