基本的なサーバーの書き方
Perlでサーバーを書くのは難しくありません。
ソケットを作り、ポートに結びつけ(bind)、接続を待ち(listen)、接続を受け付け(accept)、来たら適当に処理するだけです。
このときlistenまでは一回だけやればよく、acceptをwhileでループして、何度も接続をうけることができます。
実際のechoサーバー(=入力された内容を反射するだけのサーバー)は以下のようになります。(たったこれだけです)
use Socket; #ソケット作成 socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp')) or die; #ポートに結びつけ 6666番 bind(SERVER, pack_sockaddr_in(6666, INADDR_ANY)) or die; #接続を待つ listen(SERVER, SOMAXCONN) or die; #接続が来たら中を実行、それまで待機 while(my $sockaddr = accept(CLIENT, SERVER)){ my $org_handle = select(CLIENT); $| = 1; select($org_handle); while(<CLIENT>){ print CLIENT $_; } }
これを起動した後、telnet localhost 6666でサーバーに接続してみてください。
入力した内容がそのまま帰ってくるはずです。