1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
   |  
import socket, sys, threading, socketbinance
 
server_ip = "192.168.0.200"
server_port = 8090
 
#TODO paramétrer le timeout du serveur durant coupure
status = socketbinance.Socket_order_status()
status.start_socket()
 
 
class ThreadClient(threading.Thread):
    # class pour géré le thread des connexions client
    def __init__(self, conn):
        threading.Thread.__init__(self)
        self.connexion= conn
 
    def run(self):
        #dialogue avec le client
        nom = self.getName() #chaque thread possède un nom
        #connexion au serveur binance pour récupérer les ordre
        while 1:
            msgclient = self.connexion.recv(4096).decode("cp850")
            if not msgclient or msgclient.upper() =="FIN":
                break
            message = "%s > %s" % (nom, msgclient)
            print(message)
            filter = msgclient.split()
            print("conetnue de la variable",filter)
 
 
#ma fonction principale renvoyant des infos aux clients
            if filter[0] =="getorderid":
                # print("rentre dans la condition test orderid")
                # print ("valeur retournée ===>",status.get_status_order_id(orderid=filter[1]))
                # print(status.get_status_order_id(orderid=filter[1]))
                self.connexion.send(str(status.get_status_order_id(orderid=filter[1])).encode("cp850")) 
 
        #Fermeture de la connexion:       
        self.connexion.close() # copure la connexion cote serveur
        del conn_client[nom]    #supprmier son entrée dans le dictionnaire
        print("Client %s déconnecté." % nom)
 
# initialisation du serveur - Mise en place du socket:
mysocket= socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
    mysocket.bind((server_ip, server_port))
except socket.error:
    print("La liaison du socket à l'adresse choisi a echoué")
    sys.exit()
print("Serveur pret, en attente de requetes ...")
mysocket.listen(3)
 
# Attente et prise en charge des connexions demandées par les clients:
# dictionnaire des conneions clients
conn_client={}
while 1:
    connexion, adresse= mysocket.accept()
    #créer un nouvel objet thread pour gérer la connexion:
    th = ThreadClient(connexion)
    th.start()
    #mémoriser la connexion dans le dictionnaire:
    it = th.getName() #identifiant du thread
    conn_client[it]=connexion
    print("client %s connecté, adressse IP %s, port %s" %\
          (it, adresse[0], adresse[1]))
 
    #dialogue  avec le client:#posé un souci et une erreur cette partie causé des erreurs
    # msg= "Vous êtes connecté. Envoyé vos messages."
    # connexion.send(msg.encode("cp850")) |