Beej's Guide to Network Programming

Używanie gniazd internetowych

Brian "Beej" Hall

Bartosz Zapałowski

Historia zmian
Zmiana Wersja 1.0.0Sierpień, 1995Revised by: beej
Pierwsza wersja.
Zmiana Wersja 1.5.513 Styczeń, 1999Revised by: beej
Ostatnia wersja HTML.
Zmiana Wersja 2.0.06 Marzec, 2001Revised by: beej
Przekonwertowane do formatu DocBook XML, poprawki, dodatki.
Zmiana Wersja 2.3.18 Październik, 2001Revised by: beej
Poprawione literówki, błędy składniowe w client.c, dodane parę rzeczy w seckji FAQ.

Spis treści
1. Wprowadzenie
1.1. Dla kogo?
1.2. Platforma i kompilator
1.3. Oficjalna strona główna
1.4. Uwagi dla programistów Solaris/SunOS
1.5. Uwagi dla programistów Windows
1.6. Zanim do mnie napiszesz
1.7. Tworzenie mirrorów strony
1.8. Uwagi dla tłumaczy
1.9. Prawa autorskie i dystrybucja
2. Co to jest gniazdo?
2.1. Dwa typy gniazd internetowych
2.2. Niskopoziomowy nonsense a teoria sieci
3. structury i przetwarzanie danych
3.1. Zmiana reprezentacji bajtów
3.2. Adresy IP oraz jak sobie z nimi radzić
4. Wywołania systemowe
4.1. socket() -- Daj deskryptor pliku!
4.2. bind() -- Na jakim jestem porcie?
4.3. connect() -- Ej, ty!
4.4. listen() -- Proszę dzwonić...
4.5. accept() -- "Dziękujemy za wybranie portu 3490."
4.6. send() i recv() -- Mów do mnie, Misiu!
4.7. sendto() i recvfrom() -- Mów do mnie w stylu DGRAM
4.8. close() i shutdown() -- Wynocha!
4.9. getpeername() -- Kim jesteś?
4.10. gethostname() -- Kim ja jestem?
4.11. DNS -- Mówisz "whitehouse.gov", odpowiadam "198.137.240.92"
5. Tło Klient-Serwer
5.1. Prosty strumieniowy serwer
5.2. Prosty strumieniowy klient
5.3. Gniazda datagramowe
6. Trochę zaawansowane techniki
6.1. Blokowanie
6.2. select() -- Zsynchronizowane wielokrotne operacje I/O
6.3. Radzenie sobie z niepełnym wysyłaniem
6.4. Enkapsulacja danych
7. Więcej informacji
7.1. man Pages
7.2. Książki
7.3. W sieci
7.4. Dokumenty RFC
8. FAQ
9. Wołanie o pomoc