import sys
import socket
import thread
import threading
import textwrap
HOST = '10.11.4.56'                 
PORT = 50007
def clientSocket():
    # Tous les resaux sont bases sur ce principe
    # (Low-level networking interface)
    # Exemple TCPIP, TelNet, ftp,
    #
    print  'Demarrage du Serveur'
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
    while True:
        diokhma = raw_input(
        "Diokma Dara, Ma yobou Sthia Serveur Ba:>>"
        "Donne moi quelque chose a envoyer au Serveur:>>")
        if diokhma.strip()=='ok':
             # Arrete na, MA gui Ngnibi
             # Arrete le client
             s.close()
        iso = diokhma.encode('iso-8859-1')
        print 'iso data:', iso
        s.sendall(iso)
        data = s.recv(1024)
        print  'Recu du serveur'
        print data

def serverSocket():
    # Tous les resaux sont bases sur ce principe
    # (Low-level networking interface)
    # Exemple TCPIP, TelNet, ftp,
    #
    print  'Demarrage du Serveur'
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((HOST, PORT))
    s.listen(1)
    conn, addr = s.accept()
    print 'Connected by', addr
    while 1:
        data = conn.recv(1024)
        if not data: break
        conn.sendall(data)
    conn.close()

if __name__ =='__main__':
    # Je demande sur la console qu'est ce que l'utilisateur
    # veut que je demarre (le client ou bien le serveur)
    # c   : je demarre le client
    # s je demarre le serveur

    # Client Or Serveur
    clientOrServer = sys.argv[1]
    print clientOrServer
    if clientOrServer   == "-s":
        # Demarre le serveur
        threading.Thread(target= serverSocket).start()
    elif clientOrServer == "-c" :
        #Demarre le client
        threading.Thread(target= clientSocket).start()
    else :
        import textwrap
        __USAGE_= textwrap.dedent(

            """
            Si vous vloulez demaarrer le client ou le server
            Tapez pour le Serveur:
            python test_socket.py s
            Tapez pour le Client:
            python test_socket.py c
            """

            )
        print __USAGE_
  
            
