Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl套接字条件不';行不通_Perl_Sockets_Client Server_Conditional - Fatal编程技术网

Perl套接字条件不';行不通

Perl套接字条件不';行不通,perl,sockets,client-server,conditional,Perl,Sockets,Client Server,Conditional,我试图创建一个服务器和客户机,其中服务器根据客户机发送的内容向客户机返回不同的消息。如果客户机建立连接但不发送任何内容,服务器将返回消息1,如果客户机发送一些数据,服务器将返回消息2。但这不起作用,客户机一直在等待数据,没有打印任何内容 客户: use IO::Socket; my $sock = new IO::Socket::INET ( PeerAddr => '10.1.1.28', PeerPort => '7070', Proto => '

我试图创建一个服务器和客户机,其中服务器根据客户机发送的内容向客户机返回不同的消息。如果客户机建立连接但不发送任何内容,服务器将返回消息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;
使用IO::Socket;
my$sock=新IO::Socket::INET(
PeerAddr=>“10.1.1.28”,
PeerPort=>7070',
Proto=>“tcp”);
如果(@ARGV!=“”){
打印$sock“$ARGV[0]$ARGV[1]”;
}否则{
$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";  
};
使用IO::Socket;
my$sock=新IO::Socket::INET(
LocalHost=>“10.1.1.28”,
LocalPort=>“7070”,
Proto=>“tcp”,
Listen=>1,
);
而(1){
我的$new_sock=$sock->accept();
如果(ne“”){
打印$new_sock“带参数的连接”;
}否则{
打印$new_sock“默认消息”;
};
需要咀嚼吗

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";
    }
}
使用IO::Socket;
使用数据::转储程序;
my$sock=新IO::Socket::INET(
LocalPort=>“7070”,
Proto=>“tcp”,
Listen=>1,
);
而第(1)款{
我的$new_sock=$sock->accept();
我的$in=;
咀嚼(单位:美元);
如果($ne“”){
打印转储程序(单位:美元);
打印$new_sock“带参数的连接”;
}                       
否则{
打印$new_sock“默认消息”;
}
}

始终使用
使用严格;使用警告;
“如果客户机未建立连接但未发送任何内容,服务器将返回消息1”,不,不会。服务器将等待客户机无条件发送内容。