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