0

我正在尝试创建一个服务器和客户端,其中服务器根据客户端发送的内容向客户端返回不同的消息。如果客户端建立连接但什么也没发送,服务器将返回消息 1,如果客户端发送了一些数据,服务器将返回消息 2。但这不起作用,客户端一直在等待数据并且没有任何打印。

客户:

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";  
};
4

1 回答 1

0

需要剁手

use IO::Socket; 
use Data::Dumper; 
my $sock = new IO::Socket::INET(
    LocalPort => '7070',
    Proto     => 'tcp',
    Listen    => '1',
);

while (1) { 
    my $new_sock = $sock->accept();
    my $in       = <$new_sock>;
    chomp($in);         
    if ( $in ne "" ) {  

        print Dumper($in);  
        print $new_sock "conection with parameters";
    }                       
    else {
        print $new_sock "default message";
    }
}
于 2013-03-04T21:20:53.720 回答