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")) |
Partager