Perl Socket通信
发布时间:2020-12-16 00:10:27 所属栏目:大数据 来源:网络整理
导读:服务端: use IO::Socket::INET;use Data::Dumper;use Storable; my $server_port=7899;my $server = IO::Socket::INET-new(LocalPort = $server_port,Type = SOCK_STREAM,Reuse = 1,Listen = 10) # 或者 SOMAXCONNor die "Couldn't be a tcp server on port
服务端: use IO::Socket::INET; use Data::Dumper; use Storable; my $server_port=7899; my $server = IO::Socket::INET->new(LocalPort => $server_port,Type => SOCK_STREAM,Reuse => 1,Listen => 10) # 或者 SOMAXCONN or die "Couldn't be a tcp server on port $server_port: $!n"; print "Server has Startn"; while(1) { my $client = $server->accept(); while(<$client>) { print; chomp; $client->send("Server received is: '$_'n"); } print "Client $$ exit at ".localtime()."n"; close($client); } 客户端程序: use IO::Socket::INET; use Data::Dumper; my $remote_host='localhost'; my $remote_port=7899; my $socket = IO::Socket::INET->new(PeerAddr => $remote_host,PeerPort => $remote_port,Proto => "tcp",Type => SOCK_STREAM) or die "Couldn't connect to $remote_host:$remote_port: $!n"; while(1) { my $data = eval { local $SIG{ALRM}=sub {die "timeoutn";}; alarm(10); print "please input the number select the thing you wantn"; my $data = <STDIN>; return $data; }; alarm(0); &HeartBreak($socket); my $return; $socket->recv($return,1024,0); print "return : $return"; last if($return =~ m/quit/); } close($socket); #心跳任务 sub HeartBreak { my $socket = shift; print $socket localtime()."HeartBeatn"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |