#!/usr/local/bin/perl # $Id: echo-server-io-socket.pl,v 1.2 2002/02/05 17:53:08 68user Exp $ use IO::Socket; # IO::Socket モジュールを使う。 $port = 5000; # ポート番号を設定 $listening_socket = IO::Socket::INET->new(LocalPort => $port, Listen => SOMAXCONN, Proto => 'tcp', Reuse => 1, ); if ( ! $listening_socket ){ die "listen できませんでした。 $!\n"; } print "ポート $port を見張ります。\n"; while (1){ $new_socket = $listening_socket->accept(); $client_sockaddr = $new_socket->peername(); ($client_port,$client_iaddr) = unpack_sockaddr_in($client_sockaddr); $client_hostname = gethostbyaddr($client_iaddr, AF_INET); $client_ip = inet_ntoa($client_iaddr); print "接続: $client_hostname($client_ip) ポート $client_port\n"; select($new_socket); $|=1; select(STDOUT); while (<$new_socket>){ print "メッセージ: $_"; print $new_socket $_; } $new_socket->close(); print "接続が切れました。引き続きポート $port を見張ります。\n"; }