Windows のサービスが、[::1] で、ポート番号 9876 を listen しています。
(netstat -an で確認済み)
ここに対して、同じマシン上から、Perl(ActivePerl) でポートに接続を試みるため、以下のような記述をしました。
Perl
1use IO::Socket::IP; 2 3my $handle = IO::Socket::IP->new( 4 PeerHost => '::1', 5 PeerPort => 9876, 6 Type => SOCK_STREAM, 7 Proto => 'tcp', 8) || die print $@\n$?\n$!\n$^E;
その結果、 die して、
「そのようなホストは不明です」
と出てきました。
PeerHost を '[::1]' にしても同様でした。
また PeerHost を 'localhost' や '127.0.0.1' にすると、接続が拒否されます。
※確かに、netstat -an では、127.0.0.1:9876 はlistenしていないのでこれは正しい
ActivePerl のモジュールとしては、
- IO::Socket(1.38)
- IO::Socket::IP(0.38)
- IO::Socket::INET(1.35)
で確認しています。
どこがまずいのでしょうか。
なお、念のためファイアーウォールについては殺してみても同様であることを確認済み、別の C# で作成したプログラムからサービスに対する同ポートでの通信は正常に行えていることも確認しています。
(C# では Dns.getHostAddresses("localhost") して、その結果の AddressFamily(IPv6)で通信できています)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/22 09:30
2017/08/22 09:33
2017/08/22 13:36 編集