所以我在使用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;
}
所以我的问题是:如何在消息中没有换行符的情况下循环通过套接字(换行符终止)?
非常感谢!