Perl套接字连接

时间:2011-06-28 13:44:12

标签: perl sockets

是否可以创建到终端设备上的开放端口的套接字连接。

如果连接丢失了什么?

我看过一些例子,但他们需要一个服务器类型的脚本和一个客户端,只需要找一个客户端。

由于

3 个答案:

答案 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 );
    }
}