七行プログラミング (452レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
207(1): nobodyさん [] 03/12/07 20:49 ID:enSfwhvY(3/3) AAS
Socket関連も、環境に依存する定数があったと思う。
後、ls コマンドの実装。
環境
Linux NetKit0.17 telnet で動作確認。(line mode)
> env | grep TERMCAP
TERMCAP=SC|screen|VT 100/ANSI X3.64 virtual terminal:\
use Socket;socket S,PF_INET,SOCK_STREAM,getprotobyname'tcp';setsockopt S,
SOL_SOCKET,SO_REUSEADDR,1;bind S,sockaddr_in 1029,INADDR_ANY;listen S,1;{accept
C,S;binmode C;select C;$|=1;$n="\r\n";print$p='$ ';while($_.=getc C){if(length
==1){s/^[$n\x00]//}elsif(s/[$n]$//){/^exit$/&&last;(/^cd\s*(.*)/)?chdir$1:print
join$n,(map{s/[$n\z]//g;$_}`$_`),$p;$_=''}}close C;redo}
character mode では、local echoが返らなかった。
端末への対応、悪化してたりしたらゴメン(焦
299: nobodyさん [sage] 04/03/24 20:28 ID:??? AAS
#!/usr/bin/perl
use IO::Socket;$S=new IO::Socket::INET(Listen,1,LocalPort,1029,Reuse,1);sub p{
print@_}sub g($){($_=getc$C)eq pop}$n="\x0D\x0A";sub o{$c=pop;g"\x01"?($e=$c&2)
:/\x22/?($c&1or$e=0):($c=1);p pack(C2,255,250+(4,2,2,4,3,2,1,4)[$c&1?$c:$c+4]),
$_}{binmode($C=$S->accept);select$C;$e=1;$b='';p$p='$ ';{g"\xFF"?g"\xF7"?chop$b
:/\xF8/?($b=''):/\xFB/?o 0:/\xFC/?o 1:/\xFD/?o 2:/\xFE/?o 3:0:/\x00/?do{$b=~s/[
$n]+\z//x;"exit"eq$b&&last;s/\s+\z/$n/for@o=`$b`;p$n,@o,$p;$b=''}:(/\x08/?chop$
b:($b.=$_),/[$n]/||$e&&p$_);redo}close$C;redo}
http://www5e.biglobe.ne.jp/~aji/3min/53.html を読みながら色々
実装してみるも、>>207 に負けてる telnetd 。;)
動作確認:
TeraTermPro → Win98SE (command.com + KI-Shell)
TeraTermPro → FreeBSD 4-STABLE (tcsh)
telnet(1) (line mode) → Win98SE (command.com + KI-Shell)
telnet(1) (line mode) → FreeBSD 4-STABLE (tcsh)
TODO: cd
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル アボンOFF
ぬこの手 ぬこTOP 0.020s