如何将命令发送到在perl中非标准端口上运行的telnet

时间:2011-12-21 13:24:25

标签: perl daemon telnet

我有一个用perl编写的守护程序进程,它监听端口8622上的自定义命令。

现在我想编写一个可以使用telnet命令调用守护进程的客户端程序。客户端程序必须根据收到的输出获取输出并进一步处理。

我没有在端口8622上运行的telnet的任何用户名密码。

以下是我的客户端程序代码

#!/usr/bin/perl -wl 
use Net::Telnet;

$port = 8622;
$IP = '127.0.0.1';
$cmd = "CSDD"; #command to send

 $telnet = new Net::Telnet ( Timeout=>5, port=>$port, Errmode=>'die',Prompt => '/\$ $/i');
$telnet->open($IP);
#$telnet->login('',''); 

print $telnet->cmd($cmd);
$telnet->close;
exit;

守护程序进程收到命令但它仍然在无限循环中运行,即使没有任何条件检查。

如果我从命令提示符运行telnet,

守护进程正常工作。

我希望我用可怜的英语正确解释。 我非常陌生,所以请帮助我。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

提示真的是一个美元符号,后跟一个空格吗?尝试使用'/\$ ?$/i'或其他变体。有printwaitfor方法提供了比cmd更低级别的界面,可能它们会起作用。