Perl_Tworzenie_aplikacji_sieciowych_perlas.pdf

(337 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
Perl. Tworzenie
aplikacji sieciowych
Autor: Lincoln D. Stein
T³umaczenie: Robert Gêbarowski
ISBN: 83-7197-604-6
Tytu³ orygina³u:
Network Programming with Perl
Format: B5, stron: 834
Przyk³ady na ftp: 76 kB
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
Programowanie aplikacji sieciowych to jedna z tych dziedzin, z któr¹ jêzyk Perl radzi
sobie doskonale. Zw³aszcza, gdy czas nagli, a potrzebujemy napisaæ program
spe³niaj¹cy funkcje serwera czy te¿ klienta sieciowego, docenimy zalety Perla:
zwiêz³o æ kodu, dostêp do wielu wbudowanych procedur i setek modu³ów
rozszerzaj¹cych ten jêzyk oraz szybko æ z jak¹ w Perlu tworzy siê gotowe, dzia³aj¹ce
aplikacje.
Ksi¹¿ka po wiêcona jest g³ównie protoko³owi TCP/IP, bêd¹cemu fundamentem
funkcjonowania Internetu. Omówiono w niej:
protokó³ TCP oraz interfejs programowania modu³u IO::Socket,
protokó³ SMTP i wysy³anie poczty elektronicznej z za³¹cznikami multimedialnymi,
protoko³y POP, IMAP i NNTP do odbioru i przetwarzania poczty elektronicznej,
protokó³ FTP, protokó³ HTTP i modu³ LWP do komunikacji z serwerami WWW,
serwery rozwidlaj¹ce siê oraz demony inetd systemów UNIX i Windows,
programowanie wielow¹tkowe w Perlu,
protokó³ UDP i serwery oparte na tym protokole,
komunikacjê miêdzy procesami za po rednictwem gniazd domeny UNIX.
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Autor ksi¹¿ki, Lincoln Stein, to prawdziwy guru programowania sieciowego w Perlu.
Wystarczy tylko wspomnieæ, i¿ jest on autorem modu³u CGI.pm, powszechnie
u¿ywanego przy pisaniu skryptów CGI, a tak¿e autorem licznych ksi¹¿ek na temat tego
jêzyka.
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
Wstęp ............................................................................................... 9
Cześć I
Podstawy.......................................................................21
Perl a praca w sieci............................................................................................................23
Praca w sieci w łatwym ujęciu ..........................................................................................26
Uchwyty plików ................................................................................................................28
Składnia zorientowana obiektowo — wykorzystanie modułów IO::Handle i IO::File ....47
Rozdział 1. Podstawy operacji wejścia-wyjścia ................................................... 23
Rozdział 2. Procesy, potoki i sygnały ................................................................. 55
Procesy ..............................................................................................................................55
Potoki ................................................................................................................................60
Sygnały..............................................................................................................................70
Rozdział 3. Wprowadzenie do zagadnienia gniazd typu Berkeley.......................... 81
Klienty, serwery i protokoły..............................................................................................81
Gniazda typu Berkeley ......................................................................................................85
Adresowanie gniazd ..........................................................................................................91
Prosty klient sieciowy .......................................................................................................97
Nazwy i usługi sieciowe....................................................................................................99
Sieciowe narzędzia diagnostyczne ..................................................................................104
Rozdział 4. Protokół TCP ................................................................................. 109
Klient usługi echo w protokole TCP ...............................................................................109
Funkcje gniazda związane z wychodzącymi połączeniami ............................................112
Serwer usługi echo w protokole TCP..............................................................................113
Regulacja ustawień opcji gniazd .....................................................................................119
Inne funkcje odnoszące się do gniazd .............................................................................123
Wyjątkowe sytuacje podczas komunikacji .....................................................................125
Rozdział 5. Interfejs programowania modułu IO::Socket .................................... 129
U ycie modułu IO::Socket ..............................................................................................129
Metody modułu IO::Socket.............................................................................................132
Więcej praktycznych przykładów ...................................................................................139
Wydajność i styl ..............................................................................................................145
Zagadnienie współbie nych klientów .............................................................................146
4
Perl. Tworzenie aplikacji sieciowych
Część II
Opracowywanie klientów dla typowych usług ................155
Net::FTP ..........................................................................................................................157
Net::Telnet.......................................................................................................................171
Rozdział 6. FTP i Telnet................................................................................... 157
Rozdział 7. SMTP: Wysyłanie poczty elektronicznej .......................................... 189
Wprowadzenie do modułów pocztowych .......................................................................189
Net::SMTP ......................................................................................................................190
MailTools ........................................................................................................................196
MIME-Tools....................................................................................................................207
Rozdział 8. POP, IMAP i NNTP: Przetwarzanie poczty i grup dyskusyjnych ......... 233
Protokół pocztowy POP ..................................................................................................233
Protokół IMAP ................................................................................................................250
Klienty aktualności sieciowych.......................................................................................256
Brama aktualności-poczta ...............................................................................................267
Rozdział 9. Klienty WWW ................................................................................ 277
Instalacja biblioteki LWP................................................................................................278
Podstawy biblioteki LWP................................................................................................279
Przykłady zastosowania LWP.........................................................................................294
Analiza składniowa HTML i XML.................................................................................311
Część III Opracowywanie systemów klient-serwer TCP ................331
Rozdział 10. Serwery współbieżne oraz demon inetd ........................................... 333
Standardowe techniki współbie ności ............................................................................333
Przykład przewodni: serwer-psychoterapeuta.................................................................336
Serwer-psychoterapeuta jako serwer współbie ny .........................................................337
Skrypt klienta dla serwera-psychoterapeuty ...................................................................344
Kreowanie demonów w systemach UNIX ......................................................................347
Automatyczne uruchamianie serwerów sieciowych .......................................................354
U ycie superdemona inetd ..............................................................................................359
Rozdział 11. Aplikacje wielowątkowe................................................................. 367
O wątkach słów kilka ......................................................................................................367
Wielowątkowy serwer-psychoterapeuta .........................................................................375
Wielowątkowy klient ......................................................................................................378
Rozdział 12. Aplikacje zmultipleksowane ........................................................... 381
Zmultipleksowany klient.................................................................................................382
Moduł IO::Select .............................................................................................................384
Zmultipleksowany serwer-psychoterapeuta....................................................................389
Rozdział 13. Nieblokujące operacje wejścia-wyjścia ........................................... 397
Tworzenie nieblokujących uchwytów wejścia-wyjścia ..................................................398
Stosowanie nieblokujących uchwytów ...........................................................................400
Stosowanie nieblokujących uchwytów
w operacjach wejścia-wyjścia zorientowanych wierszowo..........................................403
Uniwersalny moduł nieblokujący operacji wejścia-wyjścia ...........................................409
Nieblokujące funkcje connect i accept............................................................................433
Spis treści
5
Rozdział 14. Ochrona serwerów ......................................................................... 449
Wykorzystanie dziennika zdarzeń systemowych............................................................450
Ustalanie przywilejów u ytkownika ...............................................................................466
Tryb ska enia ..................................................................................................................472
Zastosowanie chroot() .....................................................................................................476
Obsługa HUP oraz pozostałych sygnałów ......................................................................478
Rozdział 15. Wieloprocesowość wyprzedzająca i wielowątkowość wyprzedzająca ... 489
Wieloprocesowość wyprzedzająca..................................................................................490
Wielowątkowość wyprzedzająca ....................................................................................521
Miary wydajności............................................................................................................531
Rozdział 16. IO::Poll .......................................................................................... 533
U ycie IO::Poll................................................................................................................533
Zdarzenia IO::Poll ...........................................................................................................535
Metody IO::Poll...............................................................................................................537
Nieblokujący klient TCP — wykorzystanie IO::Poll......................................................538
Część IV Zagadnienia zaawansowane .........................................543
Rozdział 17. Protokół TCP z pilnymi danymi ....................................................... 545
Dane spoza pasma i wskaźnik pilności ...........................................................................546
Stosowanie pilnych danych TCP.....................................................................................548
Funkcja sockatmark()......................................................................................................554
Serwer trawestujący ........................................................................................................557
Rozdział 18. Protokół UDP................................................................................. 571
Klient usługi podawania daty i godziny..........................................................................571
Tworzenie i wykorzystywanie gniazd UDP....................................................................574
Błędy występujące przy korzystaniu z protokołu UDP ..................................................577
Zastosowanie IO::Socket do gniazd UDP.......................................................................578
Komunikacja z wieloma hostami ....................................................................................580
Serwery UDP ..................................................................................................................583
Zwiększanie niezawodności aplikacji UDP ....................................................................587
Rozdział 19. Serwery UDP ................................................................................. 597
Internetowy system pogawędki.......................................................................................597
Klient systemu pogawędki ..............................................................................................601
Serwer systemu pogawędki.............................................................................................611
Wykrywanie nieaktywnych klientów..............................................................................623
Rozdział 20. Rozgłaszanie.................................................................................. 631
Przekaz do pojedynczego adresata a rozgłaszanie ..........................................................631
Tajniki rozgłaszania ........................................................................................................632
Wysyłanie i odbieranie przekazów .................................................................................634
Rozgłaszanie bez adresu rozgłaszania.............................................................................638
Rozbudowa klienta pogawędki o funkcję odkrywania zasobów ....................................650
Rozdział 21. Rozsyłanie grupowe ....................................................................... 653
Podstawy rozsyłania grupowego.....................................................................................653
Zastosowanie rozsyłania grupowego ..............................................................................660
Przykładowe aplikacje z wykorzystaniem rozsyłania grupowego..................................668
6
Perl. Tworzenie aplikacji sieciowych
Rozdział 22. Gniazda domeny UNIX .................................................................... 685
Zastosowanie gniazd domeny UNIX ..............................................................................685
Serwer formatujący tekst.................................................................................................691
Zastosowanie gniazd domeny UNIX dla datagramów....................................................695
Dodatki........................................................................701
Dodatek A Dodatkowy kod źródłowy................................................................ 703
Moduł Net::NetmaskLite (rozdział 3.) ............................................................................703
PromptUtil.pm (rozdziały 8. i 9.) ....................................................................................706
Moduł IO::LineBufferedSet (rozdział 13.)......................................................................709
Moduł IO::LineBufferedSessionData (rozdział 13.).......................................................711
Moduł DaemonDebug (rozdział 14.) ..............................................................................717
Moduł Text::Travesty (rozdział 17.) ...............................................................................718
Skrypt mchat_client.pl (rozdział 21.)..............................................................................722
Dodatek B Kody błędów i zmienne specjalne w Perlu ....................................... 727
Stałe opisujące błędy systemowe ....................................................................................727
Zmienne „magiczne” w operacjach wejścia-wyjścia ......................................................732
Pozostałe zmienne globalne Perla ...................................................................................734
Dodatek C Internetowe tablice referencyjne .................................................... 737
Przypisane numery portów..............................................................................................737
Zarejestrowane numery portów.......................................................................................762
Internetowe adresy rozsyłania grupowego......................................................................780
Dodatek D Zasoby online ................................................................................ 783
Programowanie w języku Perl.........................................................................................783
TCP/IP i gniazda typu Berkeley......................................................................................783
Projektowanie serwerów sieciowych ..............................................................................784
Protokoły warstwy aplikacji............................................................................................784
Skorowidz...................................................................................... 787
Zgłoś jeśli naruszono regulamin