#!/usr/bin/python
# -*- coding: UTF-8 -*-


"""
    Code pour creer un client simple HTTP avec les fonctions de base.
"""


###############################################################################
# Informations de versions
###############################################################################
__project__   = 'Formation Python'
__author__    = 'Simon CHOLLET (s.chollet@llr.in2p3.fr)'
__modifiers__ = ''
__date__      = '16/09/2011'
__version__   = '1.0'


###############################################################################
# Importations
###############################################################################
# Importation des sockets
import socket


###############################################################################
# Definitions specifiques
###############################################################################
# Adresse de connexion
#SOCKET_ADDRESS = "209.85.148.99"
SOCKET_ADDRESS = "www.google.fr"

# Port de connexion
SOCKET_PORT    = 80


###############################################################################
# Declaration des classes / fonctions
###############################################################################


#
#
# Fonction appelee lors de la demande
# d'execution de la classe/module
if __name__ == "__main__":

    ###########################################################################
    # Ouverture de la socket
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)

    # Ouverture de la connexion
    # Parametre sous forme de tuple
    sock.connect((SOCKET_ADDRESS, SOCKET_PORT))

    # Envoi d'une requete de recuperation de la page
    sock.send("GET / HTTP/1.0\r\nHost:www.google.fr\r\n\r\n")

    # Lecture des donnees recues
    sz = sock.recv(250)

    # Affichage des donnees recues
    # Affiche :
    #   >>> Client HTTP Fcts Base <<<
    #   HTTP/1.0 200 OK
    #   Date: Fri, 16 Sep 2011 12:17:59 GMT
    #   Expires: -1
    #   Cache-Control: private, max-age=0
    #   Content-Type: text/html; charset=ISO-8859-1
    #   Set-Cookie: PREF=ID=82465ca6724e5513:FF=0:TM=1316175479:LM=1316175479:S=7JGbvv7hBmPZGtqa; expires=Sun, 
    print ">>> Client HTTP Fcts Base <<<\n%s" % (sz)

    # Fermeture de la socket
    sock.close()