Socket Module In Python

Python socket module:

 

The socket module in Python Standard Library provides the equivalent of BSD socket interface.

 

The socket module provides various objects, constants, functions and related exceptions with which any full-fledged network applications including client and server programs can be written.

 

While the documentation of the functions and objects are listed at the page below, let us start with writing sample client program using python’s socket module and move on to a client-server example using python

 

Example client program using python socket module:

#import the socket module

import socket

 

#Create a socket instance

socketObject = socket.socket()

 

#Using the socket connect to a server...in this case localhost

socketObject.connect(("localhost", 80))

print("Connected to localhost")

 

# Send a message to the web server to supply a page as given by Host param of GET request

HTTPMessage = "GET / HTTP/1.1\r\nHost: localhost\r\n Connection: close\r\n\r\n"

bytes       = str.encode(HTTPMessage)

 

socketObject.sendall(bytes)

 

# Receive the data

while(True):

    data = socketObject.recv(1024)

    print(data)

 

    if(data==b''):

        print("Connection closed")

        break

 

socketObject.close()

 

 

Output:

Connected to localhost

b'HTTP/1.1 200 OK\r\nDate: Thu, 26 Jan 2017 17:40:19 GMT\r\nServer: Apache/2.4.9 (Unix) PHP/5.5.14 OpenSSL/0.9.8za\r\nLast-Modified: Thu, 26 Jan 2017 17:40:12 GMT\r\nETag: "a5-54702d7591700"\r\nAccept-Ranges: bytes\r\nContent-Length: 165\r\nContent-Type: text/html\r\n\r\n<html>\n\n<head>\n\t<Title>Welcome!</Title>\n\t<link rel="stylesheet" href="MyIST.css">\n\n</head>\n\n<body>\n\t<center><h1>Thanks for visiting!</h1></center>\n</body>\n\n</html>\n\n'

b''

Connection closed

 

The above program connects to the web server running in localhost at port number 80. It asks for the home page using HTTP GET message by specifying the Host Name of the website.

The program creates a socket instance making a call to the socket() function with default parameter values.

The socket() function takes four parameters all of them initialized with the default values,

socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)

 

Since all the four parameters are initialized with the above default values a call to the socket.socket()will create a socket initialized with  AF_INET protocol family, and the type of the socket created is a streaming socket as specified in SOCK_STREAM.

 

The connect()establishes a connection with a remote socket as designated  by the address/hostname, port pair which is passed as the parameter to the connect() method.

 

Using the sendall() method  the sample program sends a HTTP GET message

to the remote socket in this case a web server running in the same machine.

 

Through recv()the response from the server is received in a buffer(s) of size 1024 and printed to the console.

 


Copyright 2018 © pythontic.com