Il 22/08/2012 15:19, Marco De Paoli ha scritto:


Il giorno 22 agosto 2012 15:07, Matteo Perini <perini.mat...@gmail.com <mailto:perini.mat...@gmail.com>> ha scritto:

        resp = s.recv(1)


perché non metti un valore più alto di 1?
probabilmente nel tuo caso (in cui mi pare che scambi piccoli comandi di testo) la cosa è ininfluente però attenzione, perché un buffer così piccolo può risultare di una lentezza esasperante

Marco

Si ci avevo pensato.
Però preferisco la lentezza rispetto all'errore.
In realtà devo trasferire un file xml (sempre lo stesso al cui interno cambiano i valori delle variabili) da un dispositivo esterno, al pc.


I caratteri sono circa 1000.

ma anche se uso
resp = s.recv(20000)

(adesso so che i 20000 sono byte)

molte volte resp appare troncato in modo random
e quindi non riesco a farne il parsing per leggere le variabili.

Ho provato a fare il print con print repr(resp)
ma il buffer non contiene caratteri non voluti.

Lo scambio di dati avviene in base all'attività dell'utente ma in media 2/3 volte al minuto quindi i tempi per me non sono un problema. Comunque ho fatto due test e il tempo impiegato è circa 1,15 centesimi di secondo per 2500 caratteri.

Mi piacerebbe però molto capire come mai la resp viene troncata in modo selvaggio e apparentemente senza nessuna spiegazione.

Ciao e grazie
Matteo



_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a