使用perl脚本的代理

使用perl脚本的代理,perl,proxy,Perl,Proxy,我无法使用上述代码发送和接收远程主机的响应…有什么想法吗 谢谢 Ashish您在创建套接字时声明了my$sock。然后以后你用 #!/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

我无法使用上述代码发送和接收远程主机的响应…有什么想法吗

谢谢 Ashish

您在创建套接字时声明了my$sock。然后以后你用

#!/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);
这应该是

$socket->send($data)
后来

$sock->send($data)

使用网络数据时,在声明套接字后执行此操作非常有用:

$sock->autoflush1


默认情况下,IO是缓冲的,$data变量很可能小于缓冲区大小。在这种情况下,操作系统在向远程主机发送完整缓冲区之前正在等待更多数据。设置自动刷新将禁用缓冲。

这应该是使用严格的。。。脚本的其余部分…是的,我意识到了这一点,但即使在这之后,我也无法打印出服务器响应。服务器工作正常吗?您是否将响应行中的$socket更改为$sock?在我的测试中,我刚刚运行了nc-l127.0.0.11230。perl脚本连接并发送了它的消息,然后我在nc窗口中键入了回复,perl脚本收到了它。服务器工作正常,当我从java程序执行此操作时,它工作正常…嗯,也许尝试使用主机的IP地址而不是名称?如果这是一个问题,这篇文章有一些解决方法:
$data = <$sock>