我在perl中创建了一个向客户端发送消息或命令的服务器。我可以发送命令,但是当我在我创建的服务器上提示输入命令时,如果按'输入',服务器就会混乱起来。这是为什么发生?为什么当我按'enter'时,我的perl服务器停止工作?
这里是我的代码部分:
打印 “\ nConnection从IP地址$ peer_address收到端口$ peer_port”; $ closed_message =“\ n \ t终止客户端会话...”;
while (1)
{
print "\nCommand: ";
$send_data = <STDIN>;
chop($send_data);
if ($send_data eq 'e' or $send_data eq 'E' or $send_data eq ' E' or $send_data eq ' E ' or $send_data eq 'E ' or $send_data eq ' e' or $send_data eq ' e ' or $send_data eq 'e')
{
$client_socket->send ($send_data);
close $client_socket;
print "$closed_message\n";
&options;
}
else
{
$client_socket->send($send_data);
}
$client_socket->recv($recieved_data,8000);
print "\nRecieved: $recieved_data";
}
}
if'statement is better written if if($ send_data =〜/^\ s * e \ s * $/i){...}' – 2010-05-10 20:09:29
什么是“停止工作”的技术描述和“乱成一团”? :) – DVK 2010-05-10 20:51:52
谢谢Eric的评论。和DVK,它停止工作,因为“命令:”是在一个while循环,这意味着它应该只停止要求输入和终止程序,如果我按两次“e”(一个关闭客户端,另一个关闭服务器),但是,如果我在提示处按Enter键,提示会转到下一行,并且不允许我键入输入。 – David 2010-05-11 01:13:05