[PIPython] leggere linee su socket
Paolo Mossino
mox79
Ven 19 Nov 2004 15:16:49 CET
Cris. Lor. wrote:
> esistono altri server su coi potrei provare lo scriptcosì come sta?
> per ora non volevo usare l'HTTPlib perche non mi interessava accedere ad un
> url, volevo solo "leggere" come fosse un txt da una porta di un server..
> In teoria pensavo che con questo script dovrei essere anche in grado di
> leggere da un'altra porta ad esempio quella web di google.it
> 216.239.39.104:80 ed ottenere almeno qualche linea di risposta. Non è mia
> intenzione comunicare via http.. ma solo leggere le prime linee di testo
> acessibili su quel servizio. Qualunque risposta sia...
> Non puo funzionare così?
Dovresti prima avere qualche nozione del protocollo a cui ti colleghi: in
particolare l'HTTP è un protocollo testuale che prevede l'inizio da parte
del client.
Quindi cosi' come l'hai fatto non potrebbe funzionare funziona.
Il protocollo daytime invece credo preveda semplicemente la stampa di data e
ora appena viene connesso il socket e poi la chiusura della connessione.
> Il Time server dell'esempio (206.168.112.96:13) pensavo fosse lasciato
> sempre attivo per aiutare tutti quelli che studiano su quel libro, se metto
> nel browser 206.168.112.96:80 ottengo comunque una pagina di risposta quindi
> il server c'è solo che il servizio non sarà piu attivo sivede...
Non si tengono servizi attivi che non siano FONDAMENTALI.
> Non so usare un compilatore C quindi non ho modo di provare la versione in
> C, poi in tal caso dovrei postarvi anche i file header ecc.. quindi lasciamo
> perdere..
Senza fare troppa fatica (ovviamente l'ho fatto su una macchina Unix che
aveva daytime attivo):
<code>
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect( ('127.0.0.1', 13) )
while True:
r = s.recv(8192)
if not r:
break
print r
s.close()
</code>
Provando qualcosa che non avevo ancora provato prima:
<code>
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect( ('127.0.0.1', 13) )
f = s.makefile()
for line in s:
print line.replace('\n', '')
f.close()
s.close()
</code>
--
,___, ~ Paolo Mossino (Alexander) e-m a il: mox79 a gmx.it ~
(0v0) ~ Jabber ID : alexander a jabber.linux.it - ICQ #: 28473944 ~
(_^((\ ~ "My crime is judging people by what they say and think, ~
-"-"-\\ ~ not what they look like" [Mentor's Last Words] ~
More information about the Python
mailing list