Есть два модуля один сервер
//////////////////
#!/usr/bin/perl -w
use strict;
use IO::Socket;
use warnings;
my $port = 2346;
my $server = new IO::Socket::INET (
LocalPort => $port,
Type => SOCK_STREAM,
Listen =>10
)
or die "не могу подключиться";
local $| =1;
while (my $client = $server->accept()) {
my $response = <$client>;
print ("Form client: $response\\n");
print ($client "answer");
}
close ($server) or die ("i can\'t");
/////////////////
другой клиент
/////////////////
#!/usr/bin/perl -w
use strict;
use IO::Socket;
my $host = \'localhost\';
my $port = 2346;
my $socket = new IO::Socket::INET (
PeerAddr => $host,
PeerPort => $port,
Proto => "tcp",
Type => SOCK_STREAM)
or die "не могу подключиться";
local $| =1;
print ($socket "texxxxxxtt");
my $response = <$socket>;
print("$response done\\n");
close ($socket) or die ("i can\'t");
/////////////////
Вопрос возник. В серверной части видно, что я получив сообщение от клиента вывожу в консоль полученное сообщение и пытаюсь ему отправить ответ, но ответ почему то клиенту не приходит. Связано ли это с тем что я использую
while (my $client = $server->accept()) {
}
?
Я так думаю что сервер слушает порт и не может отправить сообщение на этот порт. Так ли это. Или может проблемы кроется в другом. Есть ли возможность постоянно слушать порт и при поступлении сообщений отправлять ответ.
Спасибо.