📄 程嶏清单 17-6.txt
字号:
程序清单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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -