Chapter 1. Sockets, IPv4, and Simple Client/Server Programming

In this chapter, we will cover the following recipes:

  • Printing your machine's name and IPv4 address
  • Retrieving a remote machine's IP address
  • Converting an IPv4 address to different formats
  • Finding a service name, given the port and protocol
  • Converting integers to and from host to network byte order
  • Setting and getting the default socket timeout
  • Handling socket errors gracefully
  • Modifying a socket's send/receive buffer size
  • Changing a socket to the blocking/non-blocking mode
  • Reusing socket addresses
  • Printing the current time from the Internet time server
  • Writing a SNTP client
  • Writing a simple echo client/server application

Introduction

This chapter introduces Python's core networking library through some simple recipes. Python's socket module has both class-based and instances-based utilities. The difference between a class-based and instance-based method is that the former doesn't need an instance of a socket object. This is a very intuitive approach. For example, in order to print your machine's IP address, you don't need a socket object. Instead, you can just call the socket's class-based methods. On the other hand, if you need to send some data to a server application, it is more intuitive that you create a socket object to perform that explicit operation. The recipes presented in this chapter can be categorized into three groups as follows:

  • In the first few recipes, the class-based utilities have been used in order to extract some useful information about host, network, and any target service.
  • After that, some more recipes have been presented using the instance-based utilities. Some common socket tasks, including manipulating the socket timeout, buffer size, blocking mode, and so on, have been demonstrated.
  • Finally, both class-based and instance-based utilities have been used to construct some clients, which perform some practical tasks, for example, synchronizing the machine time with an Internet server or writing a generic client/server script.

You can use these demonstrated approaches to write your own client/server application.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.218.3.204