Sorgente con Quiz

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
giano87
00sabato 2 aprile 2005 18:30
All'indirizzo http://freedom-to-tinker.com/tinyp2p.html è disponibile il seguente codice in Python:

# tinyp2p.py 1.0 (documentation at freedom-to-tinker.com/tinyp2p.html)
import sys, os, SimpleXMLRPCServer, xmlrpclib, re, hmac # (C) 2004, E.W. Felten
ar,pw,res = (sys.argv,lambda u:hmac.new(sys.argv[1],u).hexdigest(),re.search)
pxy,xs = (xmlrpclib.ServerProxy,SimpleXMLRPCServer.SimpleXMLRPCServer)
def ls(p=""):return filter(lambda n:(p=="")or res(p,n),os.listdir(os.getcwd()))
if ar[2]!="client": # license: creativecommons.org/licenses/by-nc-sa/2.0
  myU,prs,srv = ("http://"+ar[3]+":"+ar[4], ar[5:],lambda x:x.serve_forever())
  def pr(x=[]): return ([(y in prs) or prs.append(y) for y in x] or 1) and prs
  def c(n): return ((lambda f: (f.read(), f.close()))(file(n)))[0]
  f=lambda p,n,a:(p==pw(myU))and(((n==0)and pr(a))or((n==1)and [ls(a)])or c(a))
  def aug(u): return ((u==myU) and pr()) or pr(pxy(u).f(pw(u),0,pr([myU])))
  pr() and [aug(s) for s in aug(pr()[0])]
  (lambda sv:sv.register_functi0n(f,"f") or srv(sv))(xs((ar[3],int(ar[4]))))
for url in pxy(ar[3]).f(pw(ar[3]),0,[]):
  for fn in filter(lambda n:not n in ls(), (pxy(url).f(pw(url),1,ar[4]))[0]):
    (lambda fi:fi.write(pxy(url).f(pw(url),2,fn)) or fi.close())(file(fn,"wc"))


All'interno c'è un errore (corretto su HJ n.72).. Chi lo sa trovare?
Cosa fa il programma? (Rispondete senza eseguirlo se riuscite ... è difficile io stesso nn so se ne sarei capace...)

Giano87

gianoit.altervista.org

[Modificato da giano87 03/04/2005 16.11]

giano87
00lunedì 4 aprile 2005 09:08
L'utilizzo di tinyp2p.py è molto semplice.
Innanzi tutto c'è da dire che si può inizializzare una sessione server oppure client. Come nel normale p2p il server mette a disposizione i file e il client ne usufruisce.
Se si inizializza una sessione server i comandi sono i seguenti:
tinyp2p.py [password] server [ip server] [porta]
Se si inizializza una sessione client i comandi sono i seguenti:
tinyp2p.py [password] client [indirizzo server:porta] [nome file]
Se si inizializza una sessione server e ci si vuole collegare ad un altro server i comandi sono:
tinyp2p.py [password] server [ip server] [porta] [indirizzo server:porta]

Io l'ho provato e funziona alla perfezione...

Giano87

gianoit.altervista.org
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 15:06.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com