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 件のコメント:
コメントを投稿