perl でサーバ作ることはないと思いますが。ただのエコーサーバの習作メモ。
#!/usr/local/bin/perl use strict; use IO::Socket; my $port = 5000; # MAIN my $listenSock = IO::Socket::INET->new( LocalPort => $port, Listen => SOMAXCONN, Proto => 'tcp', Reuse => 1 ) or die "bind $port failed.\n"; print "listen start.\n"; while (1) { my $newSock = $listenSock->accept; if (my $pid = fork){ #親プロセス $newSock->close; } else { #子プロセス $listenSock->close; #出力バッファを無効化 select($newSock); $| = 1; select(STDOUT); #メイン。exitかquit打たれるまでechoするだけ。 my $buf; while (uc($buf) ne 'EXIT' and uc($buf) ne 'QUIT'){ $buf = <$newSock>; $buf =~ tr/\r\n//d; print $newSock "$buf\n"; } print $newSock "Bye.\n"; $newSock->close(); exit; } }
0 件のコメント:
コメントを投稿