now 6 lines.

$/=$_;$,=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/".;&h}