def elabora(self,oClient): """ oClient : tupla che identifica il client, così formata [0] => socket, oggetto socket riferito al client. Identifica la connessione con il client [1] => address [0] => "192.168.0.183", stringa -> indirizzo del client [1] => 50465, numerico -> porta del client Ritorna : bRet -> logico, true = tutto ok | false = errore """ bRet = False print("Elaboro...") LogBuffer.write("Elaboro richiesta da: {0}:{1}".format(oClient[1][0],oClient[1][1]),4) sData = self.oSocket.recv(oClient,MSGLEN) LogBuffer.write("{0} dice: {1}".format(oClient[1][0],sData),4) if sData == "": return bRet aData = json.loads(sData) bOk = self.parse(aData,oClient[0]) if not bOk: LogBuffer.write("Errore durante il parse del comando. Controllare log precedenti per maggiori informazioni",3) else: bRet = True return bRet
from classes.Server import Server from classes.LogBuffer import LogBuffer import os oServer = Server() nPid = os.getpid() while 1: # Se sono nel processo figlio elaboro la richiesta trasmessa dal padre if nPid == 0: bOk = oServer.elabora(oClient) if not bOk: LogBuffer.write("Errore durante l'elaborazione della richiesta",3) else: LogBuffer.write("Richiesta elaborata correttamente",4) # Termino l'esecuzione del processo os._exit(0) else: print("Ascolto...") try: # Cosa fa : Attende di ricevere dei dati # Ritorna : oClient -> tupla che identifica il client, così formata # [0] => socket, oggetto socket riferito al client. Identifica la connessione con il client # [1] => address # [0] => "192.168.0.183", stringa -> indirizzo del client