logo资料库

UNIX Network Programming(Volume1, 3rd).pdf

第1页 / 共1094页
第2页 / 共1094页
第3页 / 共1094页
第4页 / 共1094页
第5页 / 共1094页
第6页 / 共1094页
第7页 / 共1094页
第8页 / 共1094页
资料共1094页,剩余部分请下载后查看
[Trial version] Main Page
[Trial version] Table of content
[Trial version] Copyright
[Trial version] Addison-Wesley Professional Computing Series
[Trial version] Foreword
[Trial version] Preface
[Trial version] Introduction
[Trial version] Changes from the Second Edition
[Trial version] Using This Book
[Trial version] Source Code and Errata Availability
[Trial version] Acknowledgments
[Trial version] Part 1: Introduction and TCP/IP
[Trial version] Chapter 1. Introduction
[Trial version] 1.1 Introduction
[Trial version] 1.2 A Simple Daytime Client
[Trial version] 1.3 Protocol Independence
[Trial version] 1.4 Error Handling: Wrapper Functions
[Trial version] 1.5 A Simple Daytime Server
[Trial version] 1.6 Roadmap to Client/Server Examples in the Text
[Trial version] 1.7 OSI Model
[Trial version] 1.8 BSD Networking History
[Trial version] 1.9 Test Networks and Hosts
[Trial version] 1.10 Unix Standards
[Trial version] 1.11 64-Bit Architectures
[Trial version] 1.12 Summary
[Trial version] Exercises
[Trial version] Chapter 2. The Transport Layer: TCP, UDP, and SCTP
[Trial version] 2.1 Introduction
[Trial version] 2.2 The Big Picture
[Trial version] 2.3 User Datagram Protocol (UDP)
[Trial version] 2.4 Transmission Control Protocol (TCP)
[Trial version] 2.5 Stream Control Transmission Protocol (SCTP)
[Trial version] 2.6 TCP Connection Establishment and Termination
[Trial version] 2.7 TIME_WAIT State
[Trial version] 2.8 SCTP Association Establishment and Termination
[Trial version] 2.9 Port Numbers
[Trial version] 2.10 TCP Port Numbers and Concurrent Servers
[Trial version] 2.11 Buffer Sizes and Limitations
[Trial version] 2.12 Standard Internet Services
[Trial version] 2.13 Protocol Usage by Common Internet Applications
[Trial version] 2.14 Summary
[Trial version] Exercises
[Trial version] Part 2: Elementary Sockets
[Trial version] Chapter 3. Sockets Introduction
[Trial version] 3.1 Introduction
[Trial version] 3.2 Socket Address Structures
[Trial version] 3.3 Value-Result Arguments
[Trial version] 3.4 Byte Ordering Functions
[Trial version] 3.5 Byte Manipulation Functions
[Trial version] 3.6 'inet_aton', 'inet_addr', and 'inet_ntoa' Functions
[Trial version] 3.7 'inet_pton' and 'inet_ntop' Functions
[Trial version] 3.8 'sock_ntop' and Related Functions
[Trial version] 3.9 'readn', 'writen', and 'readline' Functions
[Trial version] 3.10 Summary
[Trial version] Exercises
[Trial version] Chapter 4. Elementary TCP Sockets
[Trial version] 4.1 Introduction
[Trial version] 4.2 'socket' Function
[Trial version] 4.3 'connect' Function
[Trial version] 4.4 'bind' Function
[Trial version] 4.5 'listen' Function
[Trial version] 4.6 'accept' Function
[Trial version] 4.7 'fork' and 'exec' Functions
[Trial version] 4.8 Concurrent Servers
[Trial version] 4.9 'close' Function
[Trial version] 4.10 'getsockname' and 'getpeername' Functions
[Trial version] 4.11 Summary
[Trial version] Exercises
[Trial version] Chapter 5. TCP Client/Server Example
[Trial version] 5.1 Introduction
[Trial version] 5.2 TCP Echo Server: 'main' Function
[Trial version] 5.3 TCP Echo Server: 'str_echo' Function
[Trial version] 5.4 TCP Echo Client: 'main' Function
[Trial version] 5.5 TCP Echo Client: 'str_cli' Function
[Trial version] 5.6 Normal Startup
[Trial version] 5.7 Normal Termination
[Trial version] 5.8 POSIX Signal Handling
[Trial version] 5.9 Handling 'SIGCHLD' Signals
[Trial version] 5.10 'wait' and 'waitpid' Functions
[Trial version] 5.11 Connection Abort before 'accept' Returns
[Trial version] 5.12 Termination of Server Process
[Trial version] 5.13 'SIGPIPE' Signal
[Trial version] 5.14 Crashing of Server Host
[Trial version] 5.15 Crashing and Rebooting of Server Host
[Trial version] 5.16 Shutdown of Server Host
[Trial version] 5.17 Summary of TCP Example
[Trial version] 5.18 Data Format
[Trial version] 5.19 Summary
[Trial version] Exercises
[Trial version] Chapter 6. I/O Multiplexing: The 'select' and 'poll' Functions
[Trial version] 6.1 Introduction
[Trial version] 6.2 I/O Models
[Trial version] 6.3 'select' Function
[Trial version] 6.4 'str_cli' Function (Revisited)
[Trial version] 6.5 Batch Input and Buffering
[Trial version] 6.6 'shutdown' Function
[Trial version] 6.7 'str_cli' Function (Revisited Again)
[Trial version] 6.8 TCP Echo Server (Revisited)
[Trial version] 6.9 'pselect' Function
[Trial version] 6.10 'poll' Function
[Trial version] 6.11 TCP Echo Server (Revisited Again)
[Trial version] 6.12 Summary
[Trial version] Exercises
[Trial version] Chapter 7. Socket Options
[Trial version] 7.1 Introduction
[Trial version] 7.2 'getsockopt' and 'setsockopt' Functions
[Trial version] 7.3 Checking if an Option Is Supported and Obtaining the Default
[Trial version] 7.4 Socket States
[Trial version] 7.5 Generic Socket Options
[Trial version] 7.6 IPv4 Socket Options
[Trial version] 7.7 ICMPv6 Socket Option
[Trial version] 7.8 IPv6 Socket Options
[Trial version] 7.9 TCP Socket Options
[Trial version] 7.10 SCTP Socket Options
[Trial version] 7.11 'fcntl' Function
[Trial version] 7.12 Summary
[Trial version] Exercises
[Trial version] Chapter 8. Elementary UDP Sockets
[Trial version] 8.1 Introduction
[Trial version] 8.2 'recvfrom' and 'sendto' Functions
[Trial version] 8.3 UDP Echo Server: 'main' Function
[Trial version] 8.4 UDP Echo Server: 'dg_echo' Function
[Trial version] 8.5 UDP Echo Client: 'main' Function
[Trial version] 8.6 UDP Echo Client: 'dg_cli' Function
[Trial version] 8.7 Lost Datagrams
[Trial version] 8.8 Verifying Received Response
[Trial version] 8.9 Server Not Running
[Trial version] 8.10 Summary of UDP Example
[Trial version] 8.11 'connect' Function with UDP
[Trial version] 8.12 'dg_cli' Function (Revisited)
[Trial version] 8.13 Lack of Flow Control with UDP
[Trial version] 8.14 Determining Outgoing Interface with UDP
[Trial version] 8.15 TCP and UDP Echo Server Using 'select'
[Trial version] 8.16 Summary
[Trial version] Exercises
[Trial version] Chapter 9. Elementary SCTP Sockets
[Trial version] 9.1 Introduction
[Trial version] 9.2 Interface Models
[Trial version] 9.3 'sctp_bindx' Function
[Trial version] 9.4 'sctp_connectx' Function
[Trial version] 9.5 'sctp_getpaddrs' Function
[Trial version] 9.6 'sctp_freepaddrs' Function
[Trial version] 9.7 'sctp_getladdrs' Function
[Trial version] 9.8 'sctp_freeladdrs' Function
[Trial version] 9.9 'sctp_sendmsg' Function
[Trial version] 9.10 'sctp_recvmsg' Function
[Trial version] 9.11 'sctp_opt_info' Function
[Trial version] 9.12 'sctp_peeloff' Function
[Trial version] 9.13 'shutdown' Function
[Trial version] 9.14 Notifications
[Trial version] 9.15 Summary
[Trial version] Exercises
[Trial version] Chapter 10. SCTP Client/Server Example
[Trial version] 10.1 Introduction
[Trial version] 10.2 SCTP One-to-Many-Style Streaming Echo Server: 'main' Function
[Trial version] 10.3 SCTP One-to-Many-Style Streaming Echo Client: 'main' Function
[Trial version] 10.4 SCTP Streaming Echo Client: 'str_cli' Function
[Trial version] 10.5 Exploring Head-of-Line Blocking
[Trial version] 10.6 Controlling the Number of Streams
[Trial version] 10.7 Controlling Termination
[Trial version] 10.8 Summary
[Trial version] Exercises
[Trial version] Chapter 11. Name and Address Conversions
[Trial version] 11.1 Introduction
[Trial version] 11.2 Domain Name System (DNS)
[Trial version] 11.3 'gethostbyname' Function
[Trial version] 11.4 'gethostbyaddr' Function
[Trial version] 11.5 'getservbyname' and 'getservbyport' Functions
[Trial version] 11.6 'getaddrinfo' Function
[Trial version] 11.7 'gai_strerror' Function
[Trial version] 11.8 'freeaddrinfo' Function
[Trial version] 11.9 'getaddrinfo' Function: IPv6
[Trial version] 11.10 'getaddrinfo' Function: Examples
[Trial version] 11.11 'host_serv' Function
[Trial version] 11.12 'tcp_connect' Function
[Trial version] 11.13 'tcp_listen' Function
[Trial version] 11.14 'udp_client' Function
[Trial version] 11.15 'udp_connect' Function
[Trial version] 11.16 'udp_server' Function
[Trial version] 11.17 'getnameinfo' Function
[Trial version] 11.18 Re-entrant Functions
[Trial version] 11.19 'gethostbyname_r' and 'gethostbyaddr_r' Functions
[Trial version] 11.20 Obsolete IPv6 Address Lookup Functions
[Trial version] 11.21 Other Networking Information
[Trial version] 11.22 Summary
[Trial version] Exercises
[Trial version] Part 3: Advanced Sockets
[Trial version] Chapter 12. IPv4 and IPv6 Interoperability
[Trial version] 12.1 Introduction
[Trial version] 12.2 IPv4 Client, IPv6 Server
[Trial version] 12.3 IPv6 Client, IPv4 Server
[Trial version] 12.4 IPv6 Address-Testing Macros
[Trial version] 12.5 Source Code Portability
[Trial version] 12.6 Summary
[Trial version] Exercises
[Trial version] Chapter 13. Daemon Processes and the 'inetd' Superserver
[Trial version] 13.1 Introduction
[Trial version] 13.2 'syslogd' Daemon
[Trial version] 13.3 'syslog' Function
[Trial version] 13.4 'daemon_init' Function
[Trial version] 13.5 'inetd' Daemon
[Trial version] 13.6 'daemon_inetd' Function
[Trial version] 13.7 Summary
[Trial version] Exercises
[Trial version] Chapter 14. Advanced I/O Functions
[Trial version] 14.1 Introduction
[Trial version] 14.2 Socket Timeouts
[Trial version] 14.3 'recv' and 'send' Functions
[Trial version] 14.4 'readv' and 'writev' Functions
[Trial version] 14.5 'recvmsg' and 'sendmsg' Functions
[Trial version] 14.6 Ancillary Data
[Trial version] 14.7 How Much Data Is Queued?
[Trial version] 14.8 Sockets and Standard I/O
[Trial version] 14.9 Advanced Polling
[Trial version] 14.10 Summary
[Trial version] Exercises
[Trial version] Chapter 15. Unix Domain Protocols
[Trial version] 15.1 Introduction
[Trial version] 15.2 Unix Domain Socket Address Structure
[Trial version] 15.3 'socketpair' Function
[Trial version] 15.4 Socket Functions
[Trial version] 15.5 Unix Domain Stream Client/Server
[Trial version] 15.6 Unix Domain Datagram Client/Server
[Trial version] 15.7 Passing Descriptors
[Trial version] 15.8 Receiving Sender Credentials
[Trial version] 15.9 Summary
[Trial version] Exercises
[Trial version] Chapter 16. Nonblocking I/O
[Trial version] 16.1 Introduction
[Trial version] 16.2 Nonblocking Reads and Writes: 'str_cli' Function (Revisited)
[Trial version] 16.3 Nonblocking 'connect'
[Trial version] 16.4 Nonblocking 'connect:' Daytime Client
[Trial version] 16.5 Nonblocking 'connect:' Web Client
[Trial version] 16.6 Nonblocking 'accept'
[Trial version] 16.7 Summary
[Trial version] Exercises
[Trial version] Chapter 17. 'ioctl' Operations
[Trial version] 17.1 Introduction
[Trial version] 17.2 'ioctl' Function
[Trial version] 17.3 Socket Operations
[Trial version] 17.4 File Operations
[Trial version] 17.5 Interface Configuration
[Trial version] 17.6 'get_ifi_info' Function
[Trial version] 17.7 Interface Operations
[Trial version] 17.8 ARP Cache Operations
[Trial version] 17.9 Routing Table Operations
[Trial version] 17.10 Summary
[Trial version] Exercises
[Trial version] Chapter 18. Routing Sockets
[Trial version] 18.1 Introduction
[Trial version] 18.2 Datalink Socket Address Structure
[Trial version] 18.3 Reading and Writing
[Trial version] 18.4 'sysctl' Operations
[Trial version] 18.5 'get_ifi_info' Function (Revisited)
[Trial version] 18.6 Interface Name and Index Functions
[Trial version] 18.7 Summary
[Trial version] Exercises
[Trial version] Chapter 19. Key Management Sockets
[Trial version] 19.1 Introduction
[Trial version] 19.2 Reading and Writing
[Trial version] 19.3 Dumping the Security Association Database (SADB)
[Trial version] 19.4 Creating a Static Security Association (SA)
[Trial version] 19.5 Dynamically Maintaining SAs
[Trial version] 19.6 Summary
[Trial version] Exercises
[Trial version] Chapter 20. Broadcasting
[Trial version] 20.1 Introduction
[Trial version] 20.2 Broadcast Addresses
[Trial version] 20.3 Unicast versus Broadcast
[Trial version] 20.4 'dg_cli' Function Using Broadcasting
[Trial version] 20.5 Race Conditions
[Trial version] 20.6 Summary
[Trial version] Exercises
[Trial version] Chapter 21. Multicasting
[Trial version] 21.1 Introduction
[Trial version] 21.2 Multicast Addresses
[Trial version] 21.3 Multicasting versus Broadcasting on a LAN
[Trial version] 21.4 Multicasting on a WAN
[Trial version] 21.5 Source-Specific Multicast
[Trial version] 21.6 Multicast Socket Options
[Trial version] 21.7 'mcast_join' and Related Functions
[Trial version] 21.8 'dg_cli' Function Using Multicasting
[Trial version] 21.9 Receiving IP Multicast Infrastructure Session Announcements
[Trial version] 21.10 Sending and Receiving
[Trial version] 21.11 Simple Network Time Protocol (SNTP)
[Trial version] 21.12 Summary
[Trial version] Exercises
[Trial version] Chapter 22. Advanced UDP Sockets
[Trial version] 22.1 Introduction
[Trial version] 22.2 Receiving Flags, Destination IP Address, and Interface Index
[Trial version] 22.3 Datagram Truncation
[Trial version] 22.4 When to Use UDP Instead of TCP
[Trial version] 22.5 Adding Reliability to a UDP Application
[Trial version] 22.6 Binding Interface Addresses
[Trial version] 22.7 Concurrent UDP Servers
[Trial version] 22.8 IPv6 Packet Information
[Trial version] 22.9 IPv6 Path MTU Control
[Trial version] 22.10 Summary
[Trial version] Exercises
[Trial version] Chapter 23. Advanced SCTP Sockets
[Trial version] 23.1 Introduction
[Trial version] 23.2 An Autoclosing One-to-Many-Style Server
[Trial version] 23.3 Partial Delivery
[Trial version] 23.4 Notifications
[Trial version] 23.5 Unordered Data
[Trial version] 23.6 Binding a Subset of Addresses
[Trial version] 23.7 Determining Peer and Local Address Information
[Trial version] 23.8 Finding an Association ID Given an IP Address
[Trial version] 23.9 Heartbeating and Address Failure
[Trial version] 23.10 Peeling Off an Association
[Trial version] 23.11 Controlling Timing
[Trial version] 23.12 When to Use SCTP Instead of TCP
[Trial version] 23.13 Summary
[Trial version] Exercises
[Trial version] Chapter 24. Out-of-Band Data
[Trial version] 24.1 Introduction
[Trial version] 24.2 TCP Out-of-Band Data
[Trial version] 24.3 'sockatmark' Function
[Trial version] 24.4 TCP Out-of-Band Data Recap
[Trial version] 24.5 Summary
[Trial version] Exercises
[Trial version] Chapter 25. Signal-Driven I/O
[Trial version] 25.1 Introduction
[Trial version] 25.2 Signal-Driven I/O for Sockets
[Trial version] 25.3 UDP Echo Server Using 'SIGIO'
[Trial version] 25.4 Summary
[Trial version] Exercises
[Trial version] Chapter 26. Threads
[Trial version] 26.1 Introduction
[Trial version] 26.2 Basic Thread Functions: Creation and Termination
[Trial version] 26.3 'str_cli' Function Using Threads
[Trial version] 26.4 TCP Echo Server Using Threads
[Trial version] 26.5 Thread-Specific Data
[Trial version] 26.6 Web Client and Simultaneous Connections (Continued)
[Trial version] 26.7 Mutexes: Mutual Exclusion
[Trial version] 26.8 Condition Variables
[Trial version] 26.9 Web Client and Simultaneous Connections (Continued)
[Trial version] 26.10 Summary
[Trial version] Exercises
[Trial version] Chapter 27. IP Options
[Trial version] 27.1 Introduction
[Trial version] 27.2 IPv4 Options
[Trial version] 27.3 IPv4 Source Route Options
[Trial version] 27.4 IPv6 Extension Headers
[Trial version] 27.5 IPv6 Hop-by-Hop Options and Destination Options
[Trial version] 27.6 IPv6 Routing Header
[Trial version] 27.7 IPv6 Sticky Options
[Trial version] 27.8 Historical IPv6 Advanced API
[Trial version] 27.9 Summary
[Trial version] Exercises
[Trial version] Chapter 28. Raw Sockets
[Trial version] 28.1 Introduction
[Trial version] 28.2 Raw Socket Creation
[Trial version] 28.3 Raw Socket Output
[Trial version] 28.4 Raw Socket Input
[Trial version] 28.5 'ping' Program
[Trial version] 28.6 'traceroute' Program
[Trial version] 28.7 An ICMP Message Daemon
[Trial version] 28.8 Summary
[Trial version] Exercises
[Trial version] Chapter 29. Datalink Access
[Trial version] 29.1 Introduction
[Trial version] 29.2 BSD Packet Filter (BPF)
[Trial version] 29.3 Datalink Provider Interface (DLPI)
[Trial version] 29.4 Linux: 'SOCK_PACKET' and 'PF_PACKET'
[Trial version] 29.5 'libpcap': Packet Capture Library
[Trial version] 29.6 'libnet': Packet Creation and Injection Library
[Trial version] 29.7 Examining the UDP Checksum Field
[Trial version] 29.8 Summary
[Trial version] Exercises
[Trial version] Chapter 30. Client/Server Design Alternatives
[Trial version] 30.1 Introduction
[Trial version] 30.2 TCP Client Alternatives
[Trial version] 30.3 TCP Test Client
[Trial version] 30.4 TCP Iterative Server
[Trial version] 30.5 TCP Concurrent Server, One Child per Client
[Trial version] 30.6 TCP Preforked Server, No Locking Around 'accept'
[Trial version] 30.7 TCP Preforked Server, File Locking Around 'accept'
[Trial version] 30.8 TCP Preforked Server, Thread Locking Around 'accept'
[Trial version] 30.9 TCP Preforked Server, Descriptor Passing
[Trial version] 30.10 TCP Concurrent Server, One Thread per Client
[Trial version] 30.11 TCP Prethreaded Server, per-Thread 'accept'
[Trial version] 30.12 TCP Prethreaded Server, Main Thread 'accept'
[Trial version] 30.13 Summary
[Trial version] Exercises
[Trial version] Chapter 31. Streams
[Trial version] 31.1 Introduction
[Trial version] 31.2 Overview
[Trial version] 31.3 'getmsg' and 'putmsg' Functions
[Trial version] 31.4 'getpmsg' and 'putpmsg' Functions
[Trial version] 31.5 'ioctl' Function
[Trial version] 31.6 Transport Provider Interface (TPI)
[Trial version] 31.7 Summary
[Trial version] Exercises
[Trial version] Appendix A. IPv4, IPv6, ICMPv4, and ICMPv6
[Trial version] A.1 Introduction
[Trial version] A.2 IPv4 Header
[Trial version] A.3 IPv6 Header
[Trial version] A.4 IPv4 Addresses
[Trial version] A.5 IPv6 Addresses
[Trial version] A.6 Internet Control Message Protocols (ICMPv4 and ICMPv6)
[Trial version] Appendix B. Virtual Networks
[Trial version] B.1 Introduction
[Trial version] B.2 The MBone
[Trial version] B.3 The 6bone
[Trial version] B.4 IPv6 Transition: 6to4
[Trial version] Appendix C. Debugging Techniques
[Trial version] C.1 System Call Tracing
[Trial version] C.2 Standard Internet Services
[Trial version] C.3 'sock' Program
[Trial version] C.4 Small Test Programs
[Trial version] C.5 'tcpdump' Program
[Trial version] C.6 'netstat' Program
[Trial version] C.7 'lsof' Program
[Trial version] Appendix D. Miscellaneous Source Code
[Trial version] D.1 'unp.h' Header
[Trial version] D.2 'config.h' Header
[Trial version] D.3 Standard Error Functions
[Trial version] Appendix E. Solutions to Selected Exercises
[Trial version] Chapter 1
[Trial version] Chapter 2
[Trial version] Chapter 3
[Trial version] Chapter 4
[Trial version] Chapter 5
[Trial version] Chapter 6
[Trial version] Chapter 7
[Trial version] Chapter 8
[Trial version] Chapter 9
[Trial version] Chapter 10
[Trial version] Chapter 11
[Trial version] Chapter 12
[Trial version] Chapter 13
[Trial version] Chapter 14
[Trial version] Chapter 15
[Trial version] Chapter 16
[Trial version] Chapter 17
[Trial version] Chapter 18
[Trial version] Chapter 20
[Trial version] Chapter 21
[Trial version] Chapter 22
[Trial version] Chapter 24
[Trial version] Chapter 25
[Trial version] Chapter 26
[Trial version] Chapter 27
[Trial version] Chapter 28
[Trial version] Chapter 29
[Trial version] Chapter 30
[Trial version] Chapter 31
[Trial version] Bibliography
###E###
###E###
###E###
###E###
###E###
###E###
###E###
###E###
分享到:
收藏