Perl Socket传输(带注释)

Perl Socket传输(带注释),第1张

概述研究结果出来了,看了下仙子的案例,这个是最稳定最靠谱的了。 Server端: #!/usr/bin/perluse IO::Socket; use IO::Select; # 如果需要打印到目前终端,需要加上$|++; # 创建一个监听my $socket=IO::Socket::INET->new(LocalAddr =>'192.168.31.60', LocalPort =>

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

Server端:

#!/usr/bin/perluse 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 "插入数据:$buf\n"; open LOG,'>>a.out'; print LOG "$buf\n"; close LOG; }else{ print "数据传送完!\n"; $read_set->remove($rh); $rh->close; } } } }

ClIEnt端:

#!/usr/bin/perluse IO::Socket; # 创建连接的Socket,连接到192.168.31.60 端口9981my $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;
总结

以上是内存溢出为你收集整理的Perl Socket传输(带注释)全部内容,希望文章能够帮你解决Perl Socket传输(带注释)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1278178.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存