прокси со скриптом Perl - PullRequest
0 голосов
/ 24 июля 2010
#!/usr/bin/perl -w

use IO::Socket;

my $sock = new IO::Socket::INET (
   PeerAddr => 'remotehost',
   PeerPort => '1230',
   Proto => 'tcp',
 ) or die "ERROR in Socket Creation : $!\n";


print "TCP Connection Success.\n";

# write on the socket to server.
$data = "this is the data to send";
$socket->send($data);


# read the socket data sent by server.
$data = <$socket>;
print "Received from Server : $data\n";

sleep(10);

close($sock);

Я не могу отправить и получить ответ от удаленного хоста, используя приведенный выше код ... какие-либо идеи?

Спасибо, Ашиш

Ответы [ 2 ]

3 голосов
/ 24 июля 2010

Вы объявили my $sock, когда создали сокет. Затем вы используете

$socket->send($data)

Это должно быть

$sock->send($data)

и позже

$data = <$sock>
0 голосов
/ 26 июля 2010

При работе с сетевыми данными полезно сделать это после объявления вашего сокета:

$sock->autoflush(1);

По умолчанию ваш IO буферизован и, скорее всего, переменная $data меньше размера буфера. В таком случае ОС ожидает больше данных перед отправкой полного буфера на удаленный хост. Настройка автоматической очистки отключает буферизацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...