UNIX alan soketleri (UNIX domain socket), Internet soketlerinin aksine, yalnız aynı makina üzerindeki proseslerin haberleşmesine imkan tanımaktadır. Internet soketlerinde olduğu gibi TCP ve UDP üzerinden haberleşme sağlanabilir.
UNIX alan soketi oluşturmak için socket fonksiyonuna ilk argüman olarak AF_UNIX sembolik sabitini geçirmeliyiz. Alan soketleri dosya sisteminde bir giriş oluşturmakta ve buna ilişkin bir yol ifadesi (pathname) almaktadır. Alan soketlerinin adresleri sockaddr_un yapı türünde saklanmaktadır.
struct sockaddr_un {
sa_family_t sun_family; // AF_UNIX
char sun_path[108]; // Null karakter ile sonlandırılmış soket yol ismi
};
Soket bind edildiğinde dosya sisteminde sokete ilişkin bir giriş oluşturulacaktır. Aşağıdaki örneği çalıştırıp bu durumu gözleyebiliriz.
$ gcc -oserver server.c
$ ./server
$ ls -l /tmp/unixsock
srwxrwxr-x 1 serkan serkan 0 Mar 25 17:24 /tmp/unixsock
ls çıktısının başındaki s karakteri dosyanın bir sokete ilişkin olduğunu göstermektedir.
Basit bir örnek üzerinden, stream soketlerini kullanarak, sunucu ve istemci haberleşmesine bakalım. İstemci klavyeden girilen yazıyı sunucuya göndermektedir.