程嶏清单 17-6.txt

来自「< linux网络编程工具>>配套源码」· 文本 代码 · 共 23 行

TXT
23
字号
程序清单17-6:connect.pl
sub connect {
    # @_特殊变量用来接收传递给connect函数的参数,其中$_[0]表示第一个参数,#以此类推
    my ($pkg, $to_host, $to_port,$rcvd_notification_proc) = @_;  
    # 创建一个新的Internet域的socket套接字
    my $sock = IO::Socket::INET->new (
                                      PeerAddr => $to_host,
                                      PeerPort => $to_port,
                                      Proto    => 'tcp');
    return undef unless $sock;
    # 创建一个连接对象
    my $conn = bless {
        ‘sock’                   => $sock,
        ‘rcvd_notification_proc’ => $rcvd_notification_proc,
    }, $pkg;
if ($rcvd_notification_proc) {
        # 将_rcv和$conn一起绑定在一个闭包中
        my $callback = sub {_rcv($conn)}; 
        set_event_handler ($sock, "read" => $callback);
    }
    $conn;  # 表明connect函数返回的是$conn连接对象
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?