• Perl Socket传输(带注释)


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

    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 "监听启动
    ";
    
    # 创建一个死循环
    while(1){
       # 返回一个三参数列表,第一个参数表示可读的socket句柄集合(一个数组引用)
      my ($rh_set) = IO::Select->select($read_set, undef, 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
    ";
               open LOG,'>>a.out';
                  print LOG "$buf
    ";
               close LOG;
            }else{
               print "数据传送完!
    ";
               $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 $_ . "
    ";
    }
    
    # 发送完就关闭
    $sock->close or die $!;
    
    # 退出
    exit 0;
  • 相关阅读:
    删除maven本地库中下载不完全的jar包
    nginx负载均衡
    对字符串中的中英文进行统计
    springboot部分常用注解
    Scala 泛型
    Scala 递归举例
    Kafka(v0.11)笔记
    Scala 匿名函数与参数类型推断(简写)
    Scala 高阶函数
    Scala 偏函数 PartialFunction
  • 原文地址:https://www.cnblogs.com/xiaoCon/p/3232283.html
Copyright © 2020-2023  润新知