0
我正在尝试创建服务器和客户端,其中服务器根据客户端发送的内容向客户端返回不同的消息。如果客户端建立连接但什么都不发送,服务器将返回消息1,并且如果客户端发送了一些数据,服务器将返回消息2.但是这不起作用,客户端一直在等待数据并且没有打印任何东西。Perl Socket有条件不起作用
客户:
use IO::Socket;
my $sock = new IO::Socket::INET (
PeerAddr => '10.1.1.28',
PeerPort => '7070',
Proto => 'tcp');
if (@ARGV != "") {
print $sock "$ARGV[0] $ARGV[1]";
} else {
$data = <$sock>;
print $data;
}
$sock->close;
服务器
use IO::Socket;
my $sock = new IO::Socket::INET (
LocalHost => '10.1.1.28',
LocalPort => '7070',
Proto => 'tcp',
Listen => '1',
);
while(1) {
my $new_sock = $sock->accept();
if (<$new_sock> ne "") {
print $new_sock "conection with parameters";
} else {
print $new_sock "default message";
};
始终使用'使用严格的;使用警告;' – ikegami 2013-03-04 20:36:50
“如果clint建立连接但不发送任何东西,则服务器返回消息1”,否则不会。服务器等待客户无条件发送一些东西。 – ikegami 2013-03-04 20:38:08