or download this
$/=$_;$,=shift;$w=$a=shift;$k{+shift}=1;socket S,2,1,6;bind S,&a;for(l
+isten
S,5;$SIG{ALRM}=\&i;m! (\S+) ([e-i])([^/]*)/!s&&($k{$w=$1}=$,eq$`)&&&$2
+){alarm
...
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}
or download this
sub a{$w=~/:/;pack'CxnC4x8',2,$',split'\.',$`}sub i{}sub t{socket C,2,
+1,6;$k{$w}&&=(connect C,a)?print C"$, ".pop:0;close C}sub h{t"$_ i/"f
+or keys%k}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}$/=$_;$,=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)}