私はIPv4アドレスでTCPパケットを受信するクライアントスクリプトを持っています。 これで、スクリプトはIPv6アドレスでTCPパケットを受信する必要があります。 私はperl-Socketについてよく知らないので、変更を手伝ってもらえますか? IO::Socket::IPをもとにIPv6アドレスでスクリプトを動作させる方法
use Socket;
use IO::Handle;
use constant MY_ECHO_PORT => 9067;
$ENV{'PATH'} = "$ENV{'PATH'}:./";
my ($bytes_out,$bytes_in) = (0,0);
my $dt;
my $port = shift || MY_ECHO_PORT;
my $protocol = getprotobyname('tcp');
local *SESSION;
local *SOCK;
$SIG{'INT'} = sub {
close(SESSION) if SESSION;
shutdown(SOCK,2) if SOCK;
close(SOCK) if SOCK;
print STDERR "Mlease agent stopped\n";
exit 0;
};
socket(SOCK, AF_INET, SOCK_STREAM, $protocol) or
die "socket() failed: $!";
setsockopt(SOCK,SOL_SOCKET,SO_REUSEADDR,1) or
die "Can't set SO_REUSEADDR: $!";
my $my_addr = sockaddr_in($port,INADDR_ANY);
bind(SOCK,$my_addr) or
die "bind() failed: $!";
listen(SOCK,SOMAXCONN) or
die "listen() failed: $!";
print "Mlease agent started on port $port...\n";
[IO :: Socket :: IP](https://metacpan.org/pod/IO::Socket::IP)はIPv4とIPv6の両方をサポートしています – palik
私はIO :: Socket :: IPを使っていましたが、まだIPv4でリッスンしています。私は何かを変更する必要があると思う – zalman
[誰かが私の質問に答えるときに私は何をすべきですか?](http://stackoverflow.com/help/someone-answers) – zdim