Я пытаюсь написать простое соединение IO :: Socket в perl. Однако я сталкиваюсь с некоторыми проблемами. Вот код на стороне сервера:проблема с IO :: Socket TCP connection
my $listener =
IO::Socket::INET->new(LocalPort => 8000, Listen => 1, Reuse => 1);
die "Can't create socket for listening: $!" unless $listener;
print "Listening for connections on port 8000\n";
while(1) {
while ($client = $listener->accept()) {
while (<$client>) {
my @arguments = split(/ /, $_);
my $result = "something" ;# here we do something in my code
warn $result;
print $client $result;
close $client;
}
}
}
И код клиента:
use IO::Socket;
my $sock = new IO::Socket::INET (
PeerAddr => 'xx.xxx.xxx.xxx',
PeerPort => '8000',
Proto => 'tcp',
);
die "Could not create socket: $!\n" unless $sock;
$sock->autoflush(1);
print $sock "somethin something";
print "sent\n";
while (<$sock>) { print }
close $sock;
Моя проблема сейчас в том, что данные, кажется, передается только от клиента к Teh разъединяет, когда я закрыть клиентская программа Perl. Я получаю сообщение «отправлено» на стороне клиента, но сообщение «что-то» на стороне сервера не появляется, пока я не закрыл клиентскую сторону вручную.
Кроме того, я хочу получить ответ сервера. До сих пор, так как я должен закрыть скрипт вручную, ответ не работает на стороне клиента.
Может ли кто-нибудь помочь?
Спасибо, что работает! Не могу поверить, что я не нашел эту информацию раньше ... Должно быть, ее пропустили. – pyvi 2010-11-23 08:16:35