したがって、whileループでソケットをループしているときにこの問題が発生します。
これを使用すると、完全に正常に動作しますが、すべて$message
に改行がありますが、これは望ましくありません。
my $socket = new IO::Socket::INET (
LocalHost => "127.0.0.1",
LocalPort => "12345",
Proto => 'tcp',
Listen => 1,
Reuse => 1
);
my $client = $socket->accept();
while(<$client>) {
my $message = $_;
print $message;
}
しかし、chompを追加すると、クライアントを切断したときにのみループが終了しました(理由は理解しています)。私の推測では、chomp は$_
変数から改行を削除するため、ループは機能しなくなります。
my $socket = new IO::Socket::INET (
LocalHost => "127.0.0.1",
LocalPort => "12345",
Proto => 'tcp',
Listen => 1,
Reuse => 1
);
my $client = $socket->accept();
while(<$client>) {
my $message = $_;
chomp($message);
print $message;
}
だから私の質問は次のとおりです。メッセージに改行を入れずにソケットをループする(改行で終了する)にはどうすればよいですか?
本当にありがとう!