MoleSter, o cómo hacer un cliente P2P en apenas 6 líneas

molester.jpg

¿Qué pasa cuando un grupo de programadores se propone realizar un cliente P2P ahorrando las máximas líneas de código posibles? Aparte de que nos queda el programa escrito más complicado que hayamos visto, también nos sale eso, un cliente para compartir archivos totalmente funcional escrito en Perl.

Ahora está en su versión 0.0.4, y por ahora ocupa 466 bytes, cifra nada despreciable, ¿Eh? Que hoy día el ahorrar espacio en nuestro disco duro es tan importante como hace cinco años… (Vale, ya dejo el sarcasmo)

El código es el siguiente, y sí, aunque parezca una locura, funciona a la perfección:

$/=$_;$,=shift;$w=$a=shift;$k{+shift}=1;socket S,2,1,6;bind S,&a;for(listen
S,5;$SIG{ALRM}=&i;m! (S+) ([e-i])([^/]*)/!s&&($k{$w=$1}=$,eq$`)&&&$2){alarm
9;(accept(C,S),alarm 0)?read C,$_,1e6:($_=”$, $a f”.shift)}sub i{}sub t{socket
C,2,1,6;$k{$w}&&=(connect C,&a)?print C”$, “.pop:0;close C}sub h{t”$_ i/”for
keys%k}sub a{$w=~/:/;pack’CxnC4x8′,2,$’,split’.’,$`}sub f{$w=$_,t”$1 $3/”for
keys%k}sub e{open C,’>’,$3;print C $’}sub g{open(C,'<‘,$3)&&t”$a e$3/”.<C>;&h}

Vía: aNieto2K

Compartir en Google Plus

Acerca de Daniel Piñas

  • WordPress Comentarios
  • Facebook Comentarios