-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Il 21/08/2012 12:47, Matteo Perini ha scritto: > Ciao a tutti, > sapete dirmi come fare a controllare la risposta ottenuta durante una > comunicazione client-server? >
Lo devi decidere tu, definendo un protocollo sopra TCP/IP. > Cerco di spiegare meglio il mio problema. > ho del codice simile a questo: > > s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) > s.connect(("192.168.1.102",5001)) > s.send('comando') > resp = s.recv(1024) > > > dove 1024 dovrebbe essere il numero di caratteri "letti". giusto? > Il numero massimo di bytes (non caratteri, che sono un altra cosa) da leggere. Vedi anche: http://pubs.opengroup.org/onlinepubs/7908799/xns/recv.html > Quando invio il comando dovrei ottenere una risposta dal server e > solitamente è così. > Il problema è che la risposta resp che ottengo, in qualche caso, appare > troncata. > Si, perchè non sai quanto è lunga e quindi o leggi troppo poco (e la risposta è ovviamente troncata) oppure leggi troppo (e recv bloccherà indefinitivamente, a meno che l'altro lato della connessione non chiuda la connessione). > [...] > Come posso controllare che la struttura arrivi completa? Definisci un protocollo, ad esempio netstring http://en.wikipedia.org/wiki/Netstring oppure, semplicemente, fai in modo da utilizzare una sola connessione per ogni richiesta/risposta. In questo caso il programma che invia il file XML deve chiudere la connessione dopo aver inviato tutti i dati; lato server termina di leggere quando recv restituisce una stringa vuota. Di volta in volta leggi 8196 bytes, che è la lunghezza consigliata per il buffer. > [...] Ciao Manlio -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAlAznzkACgkQscQJ24LbaUSMRgCeOI05mOP2WRqrSvgU5e5Tskkm eOsAnjHnXy7ptuCQo+MNfedodotlj/is =Kyp9 -----END PGP SIGNATURE----- _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python