perl进程间通信第一个程序

虽然大部分代码看不懂,虽然格式很烂,但是等当看到通讯成功时,还是很高兴的

server端程序

[root@rwsoda203db1-vip perl_tidb]# cat perl_tidbvip.pl
#!/usr/bin/perl

use IO::Socket;
use IO::Select;

%srv_info=(
"clt_ip"=>"10.210.80.8",
"clt_port"=>"5277",
"srv_ip"=>"10.210.80.26",
"srv_port"=>"5277",
);
$SIG{INT}=$SIG{TERM}=sub{
$sock->close() or warn "Close Socket failed. $!,$@";
};;

my $cltip=$srv_info{"clt_ip"};
my $cltport=$srv_info{"clt_port"};
my $srvip=$srv_info{"srv_ip"};
my $srvport=$srv_info{"srv_port"};
#print "ccc$srvip\n";

my $sock = IO::Socket::INET->new(
PeerAddr=>"$cltip",
PeerPort=>"$cltport",
LocalAddr=>"$srvip",
LocalPort=>"$srvport",
Type=>SOCK_STREAM,
ReuseAddr=>SO_RESUEADDR,
Proto=>"tcp",
Listen=>20
) or die "cann't create socket connect .$!,$@";

my $sel = IO::Select->new($sock);
while (my @ready = $sel->can_read){
foreach my $fh(@ready){
  if ($fh == $sock){
	my $new = $sock->accept();
	$sel->add($new);
}else{
	$len = $fh->recv($buffer,1024,0);
	print "$buffer \n";
	$fh->send("server ok\n",0);
	$fh->autoflush(1);
	$sel->remove($fh);
	$fh->close();
}
}
}
$sock->close() or warn "cann't close socket. $!,$@\n";

client端程序

[root@rwsoda203db1 perl_tidb]# cat perl_send.pl
#!/usr/bin/perl
use IO::Socket;
use IO::Select;
%srv_info=(
"srv_ip"=>"10.210.80.26",
"srv_port"=>"5277",
);
my $srvip=$srv_info{"srv_ip"};
my $srvport=$srv_info{"srv_port"};
print "srvip:${srvport}\n";
#print "$srv_info{srv_ip}";


my $sock= IO::Socket::INET->new(
PeerAddr=>"$srvip",
PeerPort=>"$srvport",
Type=>SOCK_STREAM,
Proto=>"tcp"
) or die "cann't create socket connect.$@\n";
$sock->send("client ok!\n",0) or warn "send failed! $!,$@";
$sock->autoflush(1);
my $sel = IO::Select->new($sock);
while (my @ready = $sel->can_read){
	foreach my $fh(@ready){
		if($fh == $sock) {
			while(<$fh>){
				print $_;
			}
		$sel->remove($fh);
		close $fh;
		close FILE;
		}
	}
}
$sock->close();

通讯成功

[root@rwsoda203db1-vip perl_tidb]# ./perl_tidbvip.pl

client ok!

client ok!

参考了这个

https://blog.csdn.net/fireroll/article/details/8708270

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值