Sold out

Linux Socket Programming by Example

English · Paperback / Softback

Description

Read more

Linux Socket Programming by Example begins with a very basic introduction to the fundamentals of socket level programming. As the chapters progress, you are introduced to related concepts, such as forming network addresses, Ipv6, the TCP/IP protocol suite and options, writing servers, and creating secure applications. You will also learn about socket fundamentals, domains and addresses, address conversion functions, socket types and protocols, Internet sockets, types and protocols, binding an address to a socket, using Datagram oriented protocols, and much more.

List of contents

Introduction.
I. BASIC SOCKET CONCEPTS.
1. Introducing Sockets.

A Brief Historical Introduction. Understanding Sockets. Comparing Sockets to Pipes. Creating Sockets. Performing I/O on Sockets. Closing Sockets. Writing a Client/Server Example.
2. Domains and Address Families.

Nameless Sockets. Understanding Domains. Forming Socket Addresses. Forming Local Addresses. Forming Internet (IPv4) Socket Addresses. Specifying an X.25 Address. Specifying Other Address Families. The AF_UNSPEC Address Family.
3. Address Conversion Functions.

Internet IP Numbers. Allocating IP Addresses. Manipulating IP Numbers.
4. Socket Types and Protocols.

Specifying the Domain of a Socket. Using the socket(2) Function. Choosing a Socket Type. Choosing a Protocol. Socket Domain and Type Summary. Other Linux-Supported Protocols.
5. Binding Addresses to a Socket.

The Purpose of the bind(2) Function. Using the bind(2) Function. Obtaining the Socket Address. Interfaces and Addressing.
6. Connectionless-Oriented Protocols.

The Methods of Communication. Performing Input/Output of Datagrams. Writing a UDP Datagram Server. Writing a UDP Datagram Client. Testing the Datagram Client and Server.
7. Connection-Oriented Protocols for Clients.

Reviewing the Methods of Communication. Internet Services. Consulting the /etc/protocols File. Writing a TCP/IP Client Program. Using connect(2) on SOCK_DGRAM Sockets.
8. Connection-Oriented Protocols for Servers.

Understanding the Role of the Server. The listen(2) Function. The accept(2) Function Call. Writing a TCP/IP Server. Modifying the Client Program.
9. Hostname and Network Name Lookups.

Understanding the Need for Names. Using the uname(2) Function. Obtaining Hostnames and Domain Names. Resolving Remote Addresses.
II. ADVANCED SOCKET PROGRAMMING.
10. Using Standard I/O on Sockets.

Understanding the Need for Standard I/O. Associating a Socket with a Stream. Closing a Socket Stream. Using Separate Read and Write Streams. Winding Up Communications. Handling Interrupts. Defining Buffer Operation. Applying FILE Streams to Sockets.
11. Concurrent Client Servers.

Understanding the Multiple-Client Problem. Overview of Server Functions. Using fork(2) to Service Multiple Clients. Designing Servers That Use select(2). Applying select(2) to a Server.
12. Socket Options.

Getting Socket Options. Setting Socket Options. Retrieving the Socket Type (SO_TYPE). Setting the SO_REUSEADDR Option. Setting the SO_LINGER Option. Setting the SO_KEEPALIVE Option. Setting the SO_BROADCAST Option. Setting the SO_OOBINLINE Option. Options SO_PASSCRED and SO_PEERCRED.
13. Broadcasting with UDP.

Understanding Broadcast Addresses. Broadcasting from a Server. Receiving Broadcasts. Demonstrating the Broadcasts. Broadcasting to a Network.
14. Out-of-Band Data.

Defining Out-of-Band. Understanding the Need for Out-of-Band Data. Sockets and Out-of-Band Data. Variations in Implementation. Using Out-of-Band Data. Understanding the Urgent Pointer. Receiving Out-of-Band Data Inline. Limitations of the Urgent Mode Pointer.
15. Using the inetd Daemon.

Steps Common to Most Servers. Introducing inetd. Implementing a Simple stream tcp Server. Datagram Servers with inetd.
16. Network Security Programming.

Defining Security. The Challenges of Security Identifying Friend or Foe. Securing inetd Servers. Installing Wrapper and Server Programs. Introducing the Client Program. Installing and Testing the Wrapper.
17. Passing Credentials and File Descriptors.

Problem Statement. Introducing Ancillary Data. Introducing I/O Vectors. The sendmsg(2) and recvmsg(2) Functions. Ancillary Data Structures and Macros. Presenting an Ancillary Data Example. Testing the Socket Server.
18. A Practical Network Project.

Problem Statement. Solving the Quote Service Problem. Examining the Quote Server Program. Fetching Quotations via get_tickinfo(). Broadcasting Quotes via broadcast(). Examining the Client Program. Compiling and Running the Demonstration.
III. APPENDIXES.
Appendix A: Socket Function Quick Reference.

Socket-Specific Functions. Socket Addressing. Reading of Sockets. Writing to Sockets. Other Socket I/O. Controlling Sockets. Network Support Functions. Standard I/O Support. Hostname Support.
Appendix B: Socket-Related Structures Reference.

Socket Address Structures. Miscellaneous Structures. I/O-Related Structures.
Appendix C: Useful Network Tables.

Glossary.
Index.

About the author

Warren Gay has been an electronics enthusiast since childhood and often dragged discarded TV sets home after school. In high school he learned to program the IBM-1130 and then pursued a career in software development at Ryerson Polytechnical, in Toronto. Since then he has worked professionally for over 30 years, mainly in C/C++, under Unix and Linux. Meanwhile, the love of electronics has never faded since the early creation of his home-brewed Intel 8008 system in the 70's to the present day projects employing the Raspberry Pi. Warren also holds an advanced amateur radio license and was able to work the Mir space station (U2MIR) using packet radio in August 1991.He's authored other books including Sams Teach Yourself Linux in 24 Hours, Linux Socket Programming by Example, and Advanced Unix Programming.

Summary

A guide to socket level network programming for Linux users. The text includes information on: socket fundamentals; domains and addresses; address conversion functions; socket types and protocols; Internet sockets, types and protocols; and binding an address to a socket.

Product details

Authors Warren Gay, Warren W. Gay
Publisher Que
 
Languages English
Product format Paperback / Softback
Released 01.01.2000
 
EAN 9780789722416
ISBN 978-0-7897-2241-6
No. of pages 576
Dimensions 188 mm x 231 mm x 1 mm
Weight 954 g
Series Que
By Example
Que
Subject Natural sciences, medicine, IT, technology > IT, data processing > Data communication, networks

Customer reviews

No reviews have been written for this item yet. Write the first review and be helpful to other users when they decide on a purchase.

Write a review

Thumbs up or thumbs down? Write your own review.

For messages to CeDe.ch please use the contact form.

The input fields marked * are obligatory

By submitting this form you agree to our data privacy statement.