[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