To z tej odpowiedzi:
https://stackoverflow.com/questions/2482411/is-this-pdo-bug-fixed-now/2482424#2482424
Gniazdo UNIX jest mechanizm komunikacji między procesami, które umożliwia dwukierunkową wymianę danych pomiędzy procesami uruchomionych na tej samej maszynie.
Gniazda IP (szczególnie gniazda TCP / IP) są mechanizmem umożliwiającym komunikację między procesami w sieci. W niektórych przypadkach możesz używać gniazd TCP / IP do komunikowania się z procesami uruchomionymi na tym samym komputerze (za pomocą interfejsu sprzężenia zwrotnego).
Gniazda domenowe UNIX wiedzą, że wykonują się w tym samym systemie, więc mogą uniknąć niektórych kontroli i operacji (takich jak routing); dzięki czemu są szybsze i lżejsze niż gniazda IP. Jeśli więc planujesz komunikować się z procesami na tym samym hoście, jest to lepsza opcja niż gniazda IP.
Edycja: Zgodnie z komentarzem Nilsa Toedtmanna : Gniazda domeny UNIX podlegają uprawnieniom systemu plików, zaś gniazdami TCP można sterować tylko na poziomie filtru pakietów.
Możesz wyświetlić listę własnych lokalnych gniazd unixowych komputera za pomocą następującego polecenia:
Baw się dobrze!
źródło
netstat
działa jednak w systemie Windows.Gniazdo TCP / IP służy do komunikacji między sieciami TCP / IP. Podłączone gniazdo TCP jest identyfikowane przez połączenie lokalnego adresu IP, portu lokalnego, zdalnego adresu IP i portu zdalnego. Nasłuchujące gniazdo TCP jest identyfikowane przez port lokalny i ewentualnie lokalny adres IP. AIUI przynajmniej na gniazdach TCP / IP systemu Linux zawsze powoduje generowanie i dekodowanie pakietów TCP / IP, nawet jeśli klient i serwer znajdują się na tej samej maszynie.
Z drugiej strony gniazdo domeny unix (czasami skracane do gniazda unix) działa na jednej maszynie. Gniazda nasłuchowe znajdują się w hierarchii systemu plików, a dostęp do nich można kontrolować za pomocą uprawnień systemu plików.
Ponadto proces akceptujący połączenie w gnieździe uniksowym może określić identyfikator użytkownika łączącego się procesu. Dzięki temu można uniknąć konieczności uwierzytelnienia. Zamiast generować hasło do serwera bazy danych i umieszczać jego kopię w kodzie aplikacji internetowej, możesz po prostu powiedzieć serwerowi bazy danych, że użytkownik uruchamiający aplikację internetową ma dostęp do odpowiedniego konta użytkownika w bazie danych.
Oczywiście
Specyfikacje protokołu internetowego zwykle dotyczą tylko tego, co dzieje się na kablu, specyfikacja TCP zawiera definicję Socket, ale ta definicja nie jest taka sama, jak sposób, w jaki termin jest używany przez „API gniazd”.
„Interfejs API gniazd”, jaki znamy, został wprowadzony przez BSD, ale później został skopiowany w dowolnym miejscu i jest zawarty jako część standardu POSIX. Podstawowe rzeczy dla gniazd TCP i UDP wydają się być takie same na różnych platformach, ale bardziej zaawansowane rzeczy i rzeczy, które współdziałają z innymi częściami systemu operacyjnego są różne, na przykład w systemach uniksowych gniazdo jest identyfikowane przez uchwyt pliku i może odczytywane / zapisywane przez interfejsy API plików, nie dotyczy to Windows.
Niektóre rozszerzenia API gniazd zostały udokumentowane w rfcs, ale te RFC mają jedynie charakter informacyjny.
Gdy aplikacja jawnie tworzy gniazdo za pomocą funkcji „gniazdo” (gniazda są również tworzone przez funkcję accept), przekazuje trzy parametry: „domena”, „typ” i „protokół”. Pomiędzy nimi te trzy parametry można wykorzystać do wyboru wielu różnych typów gniazd.
źródło