zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    DRF 分页
    DRF 权限 频率
    DRF 版本 认证
    opencl(6)读写传输命令、内存映射命令
    opencl(5)缓存对象
    opencl(4)命令队列
    opencl(3)程序、内核
    opencl(2)平台、设备、上下文的获取与信息获取
    epoll
    unsigned 变量名:n
  • 原文地址:https://www.cnblogs.com/xiaoCon/p/3232283.html
Copyright © 2011-2022 走看看