LINUX.ORG.RU

Сокет не отправляет данные на сервер

 ,


0

0

Если запустить нижеследующий код на perl'е, то в консоли выводится «rc=12», но строка «Hello World» на сервер не приходит.

my $client = IO::Socket::INET->new("localhost:8080");
my $rc = $client->send("Hello World!");
print "rc=$rc\n";

Сниффер показывает что соединение устанавливается, но передачи данных нет. Пробовал явно выставлять autoflush, но не помогло (да и в документации сказано что autoflush уже выставлен по умолчанию). А вот если отсылаемую строку завершить переводом строки, то данные отправляются. Что нужно поправить в коде чтобы работало без перевода строки?


«Дорогие учёные! У меня который год в подполе происходит подземный стук. Объясните, пожалуйста, как он происходит»

Кто сервер, кто снифер. Отчего такая уверенность, что ничего не приходит.

anonymous
()

УМВР

#!/usr/bin/perl

use strict;
use IO::Socket::INET;
my $sock = IO::Socket::INET->new("localhost:9000");
$sock->send("Hello World!");
1 while(1);
$ nc -l 9000 &
$ ./send.pl
Hello World![]
pru-mike ★★
()
Ответ на: комментарий от Olegymous

Сервер, поди, ожидает получить перевод строки.

Написано же в теме что в сниффере нет передачи данных.

ricie
() автор топика
Ответ на: УМВР от pru-mike

УМВР

Попробовал сегодня запустить свой код на другой машине и действительно все работает. Зн-т проблема не в коде, а в первой машине и после перезагрузки заработало и на ней. Тему можно закрывать.

ricie
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.