Soket Nedir?
Önceki Beej'in Ağ Programlama Kılavuzu Sonraki
Soket Nedir?
İçindekiler
1. Internet Soketlerinin İki türü
2. Düşük Seviye Duyarsızlığı ve Ağ Teorisi
Sürekli "socket"lerden bahsedildiğini duymuşsunuzdur ve belki de bunların tam olarak ne anlama geldiğini merak ediyor olabilirsiniz. Soket kısaca şudur: Diğer programlarla standart Unix dosya tanımlayıcılarını kullanarak haberleşmenizi sağlayan bir yapı.
Ne?
Pekala -- bazı Unix hacker'larının, "Vay canına! Unix'teki hemen hemen herşey bir dosya!" dediğini duymuş olabilirsiniz. Böyle konuşan birinin kast ettiği aslında Unix programlarının, herhangi bir G/Ç işlemi yaptıklarında bunları bir dosya tanımlayıcıyı okuyarak ya da ona yazarak yaptıklarıdır. Bir dosya tanımlayıcı basitçe söylemek gerekirse açık bir dosya ile ilişkilendirilmiş bir tamsayıdır. Ancak (işin püf noktası da burası), söz konusu bu açık dosya diskteki normal bir dosya olabileceği gibi aynı zamanda bir ağ bağlantısı, bir FIFO, bir uçbirim ya da başka herhangi bir veri kaynağı olabilir. Gerçekten de Unix ortamında her şey bir dosyadır! Öyleyse Internet üzerinden başka bir programla iletişim kurmak isterseniz bunu bir dosya tanımlayıcı üzerinden yapacaksınız, inanın buna.
"Peki bay çok bilmiş, ağ iletişimi için kullanacağım bu dosya tanımlayıcı nerede?" gibi bir soru aklınıza gelmemiş olabilir ancak ben gene de cevabını vereyim ki içiniz rahat etsin: Bu dosya tanımlayıcıya ulaşmak için socket() sistem işlevini çağırmanız gerekir. Bu işlev size soket tanımlayıcıyı döndürür ve siz de bunu ve tabii send() ile recv() (man send, man recv) isimli soket işlevlerini kullanarak istediğiniz şekilde iletişimizini kurarsınız.
"Hey, bir dakika!" diyebilirsiniz şimdi. "Eğer bir dosya tanımlayıcı söz konusu ise o halde tanrı aşkına neden her zaman kullandığım normal read() ve write() işlevlerini kullanarak soketler üzerinden iletişim kuramayayım ki?" Kısa cevap: "Evet tabii ki!" Uzun cevap ise "Evet, mümkün ama send() ve recv() işlevleri veri iletişiminde çok daha fazla kontrol sağlar ve işinizi kolaylaştırır."
Sırada ne var? Buna ne dersiniz: çeşit çeşit soket vardır. Mesela DARPA Internet adresleri (Internet Soketleri), yerel bir düğümdeki (node) yol isimleri (Unix Soketleri), CCITT X.25 adresleri (X.25 Soketleri ki inanın bunları bilmeseniz de olur) ve kullandığınız Unix sürümüne bağlı daha pek çok soket tipi. Bu belge sadece birinci tür soketleri ele almaktadır, yani: Internet Soketleri.
Önceki Üst Ana Başlık Sonraki
Telif Hakkı ve Dağıtım Başlangıç Internet Soketlerinin İki türü
Bir Linux Kitaplığı Sayfası