JS-FTPD, снова Opera on FD и нечто на Перле
Пару дней назад, размышляя на тему PS-HTTPD, я вдохновился написать что-нибудь серверное, причем на каком-нибудь языке, совершенно для этого не предназначенном. И, как всегда, под рукой ничего, кроме JavaScript, не оказалось.
В качестве платформы я выбрал Netscape Commucator. JavaScript, как и PS, не имеет встроенных средств для работы с сокетами. Так что мне их пришлось «заимствовать» у Java, благо, что технология LiveConnect от Netscape позволяет это сделать.
Таким образом, пообщавшись телнетом с War-FTP и убив на всё два вечера, я получил вполне рабочий однопользовательский JS-FTPD.
- Количество пользователей, обслуживаемых одновременно: 1;
- Максимальная скорость передачи: 3Кб/сек;
- Порт для подключения: 40001;
- Поддержка докачки: есть;
- Поддержка пассивного режима (RFC 1579): есть;
- Поддержка OPTS и FEAT (RFC 2389): есть;
- Поддерживаемые комманды: USER, PASS, QUIT, SYST, PWD, PORT, LIST, CWD, MODE (S), TYPE, RETR, SIZE, REST, OPTS, FEAT, NOOP, STRU (F), PASV, MDTM, CHUP.
Для запуска сервера нужно создать на диске C: каталог «Server» (его содержимое сервер будет показывать) и, открыв страничку под NC 4.xx¹, нажать на кнопку «Start».
Потом, настроив FTP-клиент² на соединение с адресом 127.0.0.1 через порт 40001, можно будет подключиться к серверу.
¹ Испытано под NC 4.7 и NC 4.75.
² Испытано под NC 4.7, 4.75, IE 5.0, 5.5SP1, Opera 5.02, FAR 1.70b2 FTP, FAR ProxyFTP 1.7r2.
Меня попросили выложить мой вариант «Opera on FD» куда-нибудь поближе. Выкладываю на Chat.ru. Качать тут.
На закуску. Программа на языке Perl, выводящая на экран «another Perl hacker». Найдено у DiBR’a.
$\='`'|"'";$\++;$;='/'|'`';$;++;$;++;$;++;$,=$;;$,++;$/=$,;$/++;$:=$/;$:++;
$_='%'|'`';$_.='`'|'#';$_.=$\;$_.='`'|'/';$_.=$".'"';$_.='@'|'*'&~'!';
$_.="$:$,$/".$";$_.='`'|'!';$_.='`'|'.';$_.='/'|'`';$_.=$/.$\;$_.='%'|'`';
$_.=$;.$";$_.='@'|':'&~'*';$_.='`'|'%';$_.=$;;$_.='`'|',';$_.=$".$\;
$_.='`'|'!';$_.='#'|'`';$_.='+'|'`';$_.='`'|'%';$_.=$;.'"'.$".'>&';
$_.=$,&':';`$_`;
Красота, неправда ли? :)