#! /usr/bin/env python
# -*- coding: Utf-8 -*-

# Egy alap hálózati server definiálása
# Ez a server egy kliens felkapcsolódását várja

import socket, sys

HOST = '127.0.0.1'
PORT = 50000
counter =0          # aktív kapcsolatok számlálója

# 1) socket létrehozása :
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2) a socket hozzákapcsolása egy megadott címhez :
try:
    mySocket.bind((HOST, PORT))
except socket.error:
    print "A socket hozzákapcsolása a választott címhez meghiúsult."
    sys.exit

while 1:
    # 3) Várakozás egy kliens kapcsolatkérésére :
    print "Server kész, kérésre vár ..."
    mySocket.listen(2)

    # 4) A kapcsolat létrehozása :
    connexion, adresse = mySocket.accept()
    counter +=1
    print "A kliens felkapcsolódott, IP cím %s, port %s" % (adresse[0], adresse[1])

    # 5) Párbeszéd a klienssel :
    connexion.send("Ön a Marcel serverhez kapcsolódott. Küldje el az üzeneteit.")
    msgClient = connexion.recv(1024)
    while 1:
        print "C>", msgClient
        if msgClient.upper() == "FIN" or msgClient =="":
            break
        msgServeur = raw_input("S> ")
        connexion.send(msgServeur)
        msgClient = connexion.recv(1024)

    # 6) A kapcsolat zárása :
    connexion.send("fin")
    print "A kapcsolat megszakadt."
    connexion.close()

    ch = raw_input("<U>jrakezd <B>efejez ? ")
    if ch.upper() =='B':
        break
        
    
