是否可以创建到终端设备上的开放端口的套接字连接。
如果连接丢失了什么?
我看过一些例子,但他们需要一个服务器类型的脚本和一个客户端,只需要找一个客户端。
由于
答案 0 :(得分:6)
Perl内置了套接字。您只需加载标准Socket.pm
模块即可获得所需的常量。
perlipc 联系人会告诉您所有相关信息。然而,有许多更高级别的模块比内置模块更容易实现。有些甚至是标准的。
这是一个CLI示例:
% perl -MIO::Socket::INET -E '$him = new IO::Socket::INET "localhost:daytime" // die; print while <$him>'
Tue Jun 28 08:17:13 2011
答案 1 :(得分:0)
答案 2 :(得分:0)
这种变化可能符合您的需求:
use strict;
use warnings;
use constant
{ SOCKET_ERROR_MESSAGE => 'Some socket error message right here!'
, YOU_WANT_TO => 1
};
use IO::Select;
use IO::Socket::INET;
@ARGV = qw<server.domain.tld 8080> unless @ARGV;
sub handle_server_message {
...
}
my $sel
= IO::Select->new(
IO::Socket::INET->new(
PeerAddr => shift
, PeerPort => shift
));
# block until the server sends something that can be read.
while ( my ( $sock ) = $sel->can_read ) {
# you could just do this with $sock->eof...
if ( $sock->error and $sock->eof ) {
die MY_ERROR_MESSAGE if YOU_WANT_TO;
print MY_ERROR_MESSAGE;
}
else {
handle_server_message( $sock );
}
}