On Saturday, March 24, 2012 01:21:28 PM Enrico 'Henryx' Bianchi wrote: > In teoria potrei > risolvere facendo il controllo della corretta lunghezza della stringa (if > (data[:2] == '["' or data[:3] == '[{"') and (data[-3:] == '}]\n')) ed > inviare al client un comando di notifica che, in caso negativo, reinvia il > dato (sinceramente mi sembra un po' brutto, ma non vedo alternative)
Ok, direi di aver raggiunto un punto: Lato client: for item in res.get(): while True: conn.send(item + "\n") result = conn.recv(8192) if json.loads(result)["result"] == "ok": break Lato server: while True: data = conn.makefile().readline() if not data: break if (data[:2] == '["' or data[:3] == '[{"') and (data[-3:] == '}]\n'): conn.send(json.dumps({"result": "ok"})) datajson = json.loads(data.decode("utf-8")) if type(datajson[0]) == dict: if datajson[0].values()[0]["attrs"]["type"] == "file": files.append(data) elif datajson[0].values()[0]["attrs"]["type"] == "directory": dirs.append(data) else: if datajson[1]["attrs"]["type"] == "file": files.append(data) elif datajson[1]["attrs"]["type"] == "directory": dirs.append(data) else: conn.send(json.dumps({"result": "ko"})) La cosa, come ho detto, non mi piace molto in quanto mi sembra una forzatura, ma devo dire che funziona e quindi posso anche accontentarmi (c'e` da dire che dovrei aggiungere dei controlli in quanto rischio un loop infinito nella lettura dei dati, pero` per ora va bene) Enrico
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python