Next: Podstawowe funkcje
Up: The Linux Programmer's Guide
Previous: Źródło
  Contents
Gniazdka sieciowe (ang. sockets) są chyba najbardziej uniwersalnym spośród
mechanizmów IPC (ang. Inter Process Communication - komunikacja
międzyprocesowa). Ich implementacja w systemie Linux wzorowana jest na kodzie
pochodzącym z systemu BSD (Berkeley System Distribution) w wersji 4.4. Jeśli
dwa procesy mają się między sobą komunikować, każdy z nich tworzy po swojej
stronie jedno gniazdo. Parę takich gniazd można więc określić mianem końcówek
kanału komunikacyjnego. Gniazd używa się głównie do komunikacji z odleglym
procesem za pośrednictwem sieci, jednak można je zastosować także w przypadku
wymiany informacji między procesami działającymi w obrębie jednej maszyny.
Ta uniwersalność zastosowań jest zapewniona dzięki istieniu różnych odmian
gniazd. Gniazdo jest opisywane za pomocą kombinacji trzech atrybutów: domeny
adresowej, sposobu komunikacji i protokołu sieciowego. Szczególy poznamy już
za chwilę.
Najlepszym sposobem na poznanie mechanizmu gniazd będzie napisanie i
przeanalizowanie konkretnych programów z niego korzystających. Spróbujemy
stworzyć kilka takich przykładowych programów, m.in.:
- klient POP3 (SOCK_STREAM, TCP)
- serwer dający dostęp do linii komend (SOCK_STREAM, TCP)
- klient/serwer odbierający/wysyłający pliki tekstowe (SOCK_DGRAM , UDP)
- prosty program typu ping (SOCK_RAW , ICMP)
Paweł Niewiadomski
2000-10-17