加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl Socket传输(带注释)

发布时间:2020-12-16 00:01:21 所属栏目:大数据 来源:网络整理
导读:研究结果出来了,看了下仙子的案例,这个是最稳定最靠谱的了。 Server端: # !/usr/bin/perl use IO:: Socket ; use IO:: Select ; # 如果需要打印到目前终端,需要加上 $|++ ; # 创建一个监听 my $socket =IO:: Socket ::INET-new(LocalAddr = ' 192.168.31

研究结果出来了,看了下仙子的案例,这个是最稳定最靠谱的了。

Server端:

#!/usr/bin/perl

use IO::Socket; use IO::Select; # 如果需要打印到目前终端,需要加上
$|++; # 创建一个监听
my $socket=IO::Socket::INET->new(LocalAddr =>'192.168.31.60', LocalPort =>9981,Listen     =>5, Proto =>'tcp') or die $@; # 创建一格IO::Select目标
my $read_set=new IO::Select(); # 把上述侦听socket加入到检查队列
$read_set->add($socket); # 启动的时候添加一个标识,用于调试
print "监听启动n"; # 创建一个死循环
while(1){ # 返回一个三参数列表,第一个参数表示可读的socket句柄集合(一个数组引用)
  my ($rh_set) = IO::Select->select($read_set,undef,undef); # 遍历可读的socket
  foreach my $rh (@$rh_set){ if($rh == $socket){ my $ns = $rh->accept(); $read_set->add($ns); }else{ my $buf = undef; if (sysread($rh,$buf,2048)){ print "插入数据:$bufn"; open LOG,'>>a.out'; print LOG "$bufn"; close LOG; }else{ print "数据传送完!n"; $read_set->remove($rh); $rh->close; } } } }

Client端:

#!/usr/bin/perl

use IO::Socket; # 创建连接的Socket,连接到192.168.31.60 端口9981
my $sock=IO::Socket::INET->new(PeerAddr =>'192.168.31.60', PeerPort => 9981, Proto =>'tcp') or die $@; # 发送数据,Hello就是要传送的数据.
while(<>){ print $sock $_ . "n"; } # 发送完就关闭
$sock->close or die $!; # 退出
exit 0;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读