Master your Minecraft
 
 

Special Offers see all

Enter to WIN a $100 Credit

Subscribe to PowellsBooks.news
for a chance to win.
Privacy Policy

Tour our stores


    Recently Viewed clear list


    Best Books of the Year | December 9, 2014

    Aubrey: IMG Best YA Fiction of 2014



    So what is with all the hullabaloo about young adult literature these days? Do we have John Green to blame for getting us sucked in to the tragic... Continue »

    spacer

On Order

$44.95
New Trade Paper
Currently out of stock.
Add to Wishlist
available for shipping or prepaid pickup only
Qty Store Section
- Local Warehouse Software Engineering- General

BSD Sockets Programming from a Multi-Language Perspective (Programming)

by

BSD Sockets Programming from a Multi-Language Perspective (Programming) Cover

 

Synopses & Reviews

Publisher Comments:

BSD Sockets Programming from a Multi-Language Perspective is written for software developers who need to create a variety of network applications. It begins by detailing the efficient and effective uses of the BSD Sockets API for networked application development in multiple languages. From there the BSD API is covered in detail and the purpose of each function and socket option is identified, including the advanced behavioral side-effects of each. Having a thorough understanding of these issues and techniques is often the difference between being a novice and professional network application developer. Optimizing networked applications and avoiding common pitfalls are also addressed. After the solid foundational coverage of the Sockets API in Part I, Part II investigates it from a variety of language perspectives. Using six different languages in all, including imperative languages (C), object-oriented languages (Java), and scripting languages (Perl), you learn the advantages and disadvantages of each language as they relate to the development of networked applications and the Sockets API. Finally, in Part III, a set of software patterns is discussed for each language. Patterns include a simple HTTP server and SMTP client, and various Sockets communication styles (stream, datagram, multicast, and broadcast). These patterns can be used as the basis for more complex applications or to give you a quick-start when building networked applications. The patterns also illuminate the differences between the network APIs for each language and identify how certain languages make patterns simple and others make them complex. The accompanying CD-ROM includes all of the source code from the book, including the patterns detailed in Part III, as well as open source interpreters and other tools.

Book News Annotation:

This guide offers instructions for creating a variety of network applications. It begins by describing the BSD APIO in detail and identifying the purpose of each function, highlighting behavioral side-effects. It then investigates the Sockets API from a variety of language perspectives. Covering six different languages—including imperative languages (C), object-oriented languages (Java), and scripting languages (Perl)—the book discusses the advantages and disadvantages of each. A companion CD-ROM includes all the source code detailed in the book as well as open source compilers, interpreters, and other tools. Jones is a software engineer. Annotation (c)2003 Book News, Inc., Portland, OR (booknews.com)

Synopsis:

This book details the efficient and effective uses of the BSD Sockets API for networked application development in multiple languages. It begins by describing the BSD API in detail and identifying the purpose of each function, including the rarely discussed behavioral side-effects of functions. A solid understanding of these issues is the difference between a novice and a professional network developer. The book then investigates the Sockets API from a variety of language perspectives. Using 6 different languages in all, including imperative languages, object-oriented languages such as Java, and functional languages such as Scheme, users learn the advantages and disadvantages of each language as they relate to the Sockets API. Application development with sockets is also covered, with examples of common pitfalls, and how to avoid them. Optimizations possible with the Sockets API are also detailed. The accompanying
CD-ROM includes all of the source code detailed in the book as well as open source compilers, interpreters, and other tools.

FEATURES:
* Covers the Sockets API in-depth, including behavioral consequences
* Offers complete coverage of socket options and their effects on network applications
* Discusses usage of the Sockets API in a large variety of popular languages
* Looks at language-specific network programming alternatives
* For each of the covered languages, analyzes the implementations of standard software patterns including a simple HTTP server, SMTP client, multicast and broadcast patterns, and more.
* Provides helpful tips on creating efficient network applications

About the Author

M. Tim Jones is an embedded software architect and the author of numerous books, including AI Application Programming, Second Edition (Charles River Media), BSD Sockets Programming from a Multilanguage Perspective (Charles River Media), Artifi cial Intelligence: A Systems Approach, and many articles on a variety of technical subjects. His engineering background ranges from the development of kernels for geosynchronous spacecraft to embedded systems architecture and networking protocols development. Tim is a consultant engineer for Emulex Corp. in Longmont, Colorado.

Table of Contents

Introduction to Sockets Programming 1 Networking Overview What Is the Internet? Internet Model of Communication The IP Protocol Suite Network Layer Transport Layer Application Layer Types of Communication Stream Datagram Broadcast Multicast Packet Processing in a Network Stack Addressing IP Addresses Subnetting Introduction to IP Routing Simple Routing Example Local (Interior) Ethernet Routing Exterior Routing Network Entities Hosts Bridges Routers Gateways 2 Introduction to Sockets Programming The Sockets Programming Paradigm Ports Sockets Addressing Sample Server Source Discussion Sample Client Source Discussion Client/Server Symmetry Network Byte Order Swapping Byte Order 3 Standard BSD API Functions socketFunction bindFunction listenFunction acceptFunction connectFunction recv/recvfromFunction send/sendtoFunction closeFunction htons/ntohs/htonl/ntohlFunctions inet_addr/inet_aton/inet_ntoaFunctions 4 Advanced Sockets Functions selectFunction getsocknameFunction getpeernameFunction getsockopt/setsockoptFunctions shutdownFunction gethostname/sethostnameFunctions gethostbyaddrFunction gethostbynameFunction getservbynameFunction getservbyportFunction 5 Socket Options Socket Options API Sockets Layer Options TCP Layer Options IP Layer Options 6 Advanced Sockets Programming Topics Out-of-Band (OOB) Data Nonblocking Sockets Determining Peer Socket Closure Resolving a Domain Name to an IP Address Writing Servers for Multi-homed Nodes Timing Out a Socket Connect Data Framing (TCP vs. UDP) Connectionless and Connected Datagram Sockets Timing Out a Read or Write Operation Determining Peer Information Determining the Protocol Argument for Socket Identifying Service Ports and Protocols Optimizing Sockets Applications Ensuring Full-Sized Segments Optimizing the Send and Receive Buffer Sizes Socket Buffer Sizes and TCP Socket Buffers and Performance Configuring the Socket Buffer Sizes Other Options Minimizing Latency with TCP_NODELAY Reading/Writing All Available Data Advantages and Disadvantages to Select Using Multiple Sockets Separating Control and Data Connections Using Stack Callbacks Using Zero-Copy Buffer Functions Using UDP instead of TCP Stack Selection Stack Configuration 8 Sockets Programming Pitfalls Failing to use Function Return values Ignoring Peer Socket Closure Ignoring Endianness of Parameters in API Functions Making Protocol Framing Assumptions Causing "Address in Use" Error for Bind Listening on Multiple Interfaces Initial UDP Datagrams Disappearing Defensive Programming Using Safe Functions to Avoid Buffer Overflow Rigorously Checking Error Returns Rigorously Checking Input and Output Parameters Declaring String Arrays Minimizing Protocol Feedback Initializing All Variables Enabling All Compiler Warnings Part II Sockets Programming from a Multi-Language Perspective 9 Network Programming in the C Language C Language Overview Origin of the C Language C Language Heritage Tools Compiler/Tools Used Networking API Used Where to Download Networking API for C Sockets API Summary Sockets API Discussion 10 Network Programming in Java Java Language Overview Origin of the Java Language Java Language Heritage Tools Interpreter/Tools Used Networking API Used Where to Download Networking API for Java Sockets API Summary Sockets API Discussion Specialized Networking APIs for Java Java URL Class for HTTP 11 Network Programming in Python Python Language Overview Origin of the Python Language Python Language Heritage Tools Interpreter/Tools Used Networking API Used Where to Download Networking API for Python Sockets API Discussion Specialized Networking APIs for Python Python smtplibModule Python httplib Module Python SocketServerModule 12 Network Programming in Perl Perl Language Overview Origin of the Perl Language Perl Language Heritage Tools Interpreter/Tools Used Networking API Used Where to Download Networking API for Perl Sockets API Discussion Specialized Networking APIs for Perl Perl Net::SMTPModule Perl LWP::SimpleModule 13 Network Programming in Ruby Ruby Language Overview Origin of the Ruby Language Ruby Language Heritage Tools Interpreter/Tools Used Networking API Used Where to Download Networking API for Ruby Class vs. Instance Methods Sockets API Summary Sockets API Discussion Specialized Networking APIs for Ruby Ruby Net::SMTPClass Ruby Net::HTTPClass 14 Network Programming in Tcl Tcl Language Overview Origin of the Tcl Language Tcl Language Heritage Tools Interpreter/Tools Used Networking API Used Where to Download Networking API for Tcl Sockets API Discussion Part III Software Patterns from a Multi-Language Perspective 15 Software Patterns Introduction Stream Server/Client Design Datagram Server/Client Design Broadcast Datagram Server/Client Design Multicast Datagram Server/Client Design Simple HTTP Server Design Simple SMTP Client Design 16 Network Code Patterns in C Stream (TCP) Server/Client Stream Server Stream Client Datagram (UDP) Server/Client Datagram Server Datagram Client Multicast Server/Client Multicast Server Multicast Client Broadcast Server/Client Broadcast Server Broadcast Client Simple HTTP Server Simple SMTP Client 17 Network Code Patterns in Java Stream (TCP) Server/Client Stream Server Stream Client Datagram (UDP) Server/Client Datagram Server Datagram Client Multicast Server/Client Multicast Server Multicast Client Simple HTTP Server Simple SMTP Client 18 Network Code Patterns in Python Stream (TCP) Server/Client Stream Server Stream Client Datagram (UDP) Server/Client Datagram Server Datagram Client Multicast Server/Client Multicast Server Multicast Client Broadcast Server/Client Broadcast Server Broadcast Client Simple HTTP Server Simple SMTP Client 19 Network Code Patterns in Perl Stream (TCP) Server/Client Stream Server Stream Client Datagram (UDP) Server/Client Datagram Server Datagram Client Multicast Server/Client Multicast Server Multicast Client Broadcast Server/Client Broadcast Server Broadcast Client Simple HTTP Server Simple SMTP Client 20 Network Code Patterns in Ruby Stream (TCP) Server/Client Stream Server Stream Client Datagram (UDP) Server/Client Datagram Server Datagram Client Multicast Server/Client Multicast Server Multicast Client Broadcast Server/Client Broadcast Server Broadcast Client Simple HTTP Server Simple SMTP Client 21 Network Code Patterns in Tcl Introduction Stream (TCP) Server/Client Stream Server Stream Client Datagram (UDP) Client Datagram Client Multicast Server/Client Multicast Server Multicast Client Broadcast (UDP) Client Simple HTTP Server Simple SMTP Client Appendix A About the CD-ROM System Requirements Operating System Requirements On the CD-ROM Software Patterns Software Tools Software License Appendix B Acronyms

Product Details

ISBN:
9781584502685
Author:
Jones, M. Tim
Publisher:
Cengage Learning
Author:
Jones, Ken
Author:
Jones
Author:
Jones, M. Tim(M. Tim Jones)
Author:
Jones-Diaz, Criss
Author:
Jones, Edward
Location:
Hingham, Mass.
Subject:
Computer networks
Subject:
Programming - Software Development
Subject:
Networking - Network Protocols
Subject:
Internet programming
Subject:
Programming languages (electronic computers)
Subject:
Programming Languages - Java
Subject:
Programming Languages.
Subject:
Internetworking
Subject:
Careers
Subject:
Engineering / Electrical
Subject:
Software Development & Engineering - General
Subject:
Software Engineering-General
Subject:
General Technology
Copyright:
Edition Description:
Charles River Media
Series:
Charles River Media Programming
Series Volume:
7
Publication Date:
September 2003
Binding:
TRADE PAPER
Grade Level:
Professional and scholarly
Language:
English
Illustrations:
Yes
Pages:
441
Dimensions:
24 cm. +

Related Subjects

Computers and Internet » Networking » General
Computers and Internet » Software Engineering » General

BSD Sockets Programming from a Multi-Language Perspective (Programming) New Trade Paper
0 stars - 0 reviews
$44.95 Backorder
Product details 441 pages Charles River Media - English 9781584502685 Reviews:
"Synopsis" by , This book details the efficient and effective uses of the BSD Sockets API for networked application development in multiple languages. It begins by describing the BSD API in detail and identifying the purpose of each function, including the rarely discussed behavioral side-effects of functions. A solid understanding of these issues is the difference between a novice and a professional network developer. The book then investigates the Sockets API from a variety of language perspectives. Using 6 different languages in all, including imperative languages, object-oriented languages such as Java, and functional languages such as Scheme, users learn the advantages and disadvantages of each language as they relate to the Sockets API. Application development with sockets is also covered, with examples of common pitfalls, and how to avoid them. Optimizations possible with the Sockets API are also detailed. The accompanying
CD-ROM includes all of the source code detailed in the book as well as open source compilers, interpreters, and other tools.

FEATURES:
* Covers the Sockets API in-depth, including behavioral consequences
* Offers complete coverage of socket options and their effects on network applications
* Discusses usage of the Sockets API in a large variety of popular languages
* Looks at language-specific network programming alternatives
* For each of the covered languages, analyzes the implementations of standard software patterns including a simple HTTP server, SMTP client, multicast and broadcast patterns, and more.
* Provides helpful tips on creating efficient network applications

spacer
spacer
  • back to top

FOLLOW US ON...

     
Powell's City of Books is an independent bookstore in Portland, Oregon, that fills a whole city block with more than a million new, used, and out of print books. Shop those shelves — plus literally millions more books, DVDs, and gifts — here at Powells.com.