[Python] controllare risposta tcp/ip

Andrea Francia andrea a andreafrancia.it
Mer 22 Ago 2012 15:46:22 CEST


2012/8/22 Matteo Perini <perini.matteo a gmail.com>

> 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
>

Non mi convince molto il fatto che smetti di ricevere quando ricevi
"</endtag>\r\n"
Se non dico stupidate (e potrei) stai usando una informazione a livello di
applicazione (application layer) per controllare una cosa che é a livello
di trasporto. La cosa mi puzza. Cosa succede quando il client ti manda solo
fino a "</endtag>", senza "\r"?

Mi piacerebbe consigliarti il modo giusto ma sulla documentazione non l'ho
visto. Se funzionasse come dico io dovrebbe andare bene usare questo if al
posto del tuo (ma é una mia supposizione):

   if resp = '':
       break

Ciao
-- 
Andrea Francia http://andreafrancia.it
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120822/e160323d/attachment.html>


Maggiori informazioni sulla lista Python