W komunikacji za pomocą gniazd stosuje się również pojęcie deskryptora. Zanim program zacznie używać protokołów do komunikacji, musi zażądać od systemu operacyjnego, aby ten utworzył gniazdo, które będzie używane do komunikacji. System podaje małą liczbę całkowitą – deskryptor, który identyfikuje gniazdo. Program przekazuje następnie ten deskryptor jako argument przy wywołaniu procedur przesyłania danych przez sieć – program nie musi przy każdej transmisji danych podawać szczegółów określających odległego odbiorcę. W implementacji uniksowej gniazda są całkowicie zintegrowane z resztą wejścia – wyjścia. System operacyjny udostępnia jeden zestaw deskryptorów dla plików, urządzeń, komunikacji między procesami oraz komunikacji sieciowej. W wyniku tego procedury takie jak przeczytaj i zapisz są dosyć ogólne – program może stosować tę samą procedurę do wysyłania danych do innego programu, pliku lub przez sieć. W obecnej terminologii deskryptor reprezentuje obiekt, a procedura zapisz- stosowaną do niego metodę. Obiekt podstawowy określa sposób stosowania metody. Jeśli program dostanie deskryptor odpowiadający urządzeniu, wysyła dane do urządzenia. Jeśli deskryptor odpowiadający plikowi – do pliku. Jeśli program otrzyma deskryptor odpowiadający gniazdu, wyśle dane przez intersieć do odległego komputera.
Gniazda, deskryptory i sieciowe wejście-wyjście





