[Python] controllare risposta tcp/ip
Manlio Perillo
manlio.perillo a gmail.com
Mer 22 Ago 2012 22:09:16 CEST
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Il 22/08/2012 15:07, Matteo Perini ha scritto:
> Ciao,
> rieccomi.
> Sto risolvendo abbastanza bene con un codice tipo questo (semplifico un
> po' per brevità):
>
> s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
> s.connect(("192.168.1.100",5001))
> s.send('comando')
>
> r=""
> i=0
> while True:
> resp = s.recv(1)
> r=r+str(resp)
> if r[-10:]=="</endtag>\r\n":
> break
>
i a cosa dovrebbe servire?
> Sembra funzionare!
Si, ma non è la soluzione migliore.
Ti ho detto come fare; ecco un esempio (non testato):
## Client
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.1.100", 5001))
buf = '...'
s.send(buf)
s.close() # termina connessione, recv restituirà un buffer vuoto
## Server
buf = [] # accumula i dati in una lista
buf_size = 8196
data = s.recv(buf_size)
while data:
buf.append(data)
data = s.recv(buf_size)
data = ''.join(buf) # più efficiente della tua soluzione
# parsing dei dati, oppure puoi usare un feed parser
Ciao Manlio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAlA1PGwACgkQscQJ24LbaUQTngCfSGCBCyjYeARZeillYurm5/7D
qY0An05PAZkkmN0YC1yFW78R7lqZ0Nvl
=vdUm
-----END PGP SIGNATURE-----
Maggiori informazioni sulla lista
Python