Viperii has asked for the wisdom of the Perl Monks concerning the following question:
So, how to make a workable timeout connection with IO::Socket::SSL on win32? Thanks all!#! perl -w use strict; use IO::Socket; use IO::Socket::SSL; use IO::Select; my $timeout = 3; my $socket = IO::Socket::SSL->new( Proto => "tcp", Type => SOCK_STREAM); ioctl($socket, 0x8004667e, pack("I", 1)); # Good HTTPS server response + with comment this, but timeout not work. my $inetaddr = inet_aton("some_ssl_host"); my $peeraddr = sockaddr_in(443, $inetaddr); $socket->connect($peeraddr); $socket->autoflush; my $select = new IO::Select($socket); if($select->can_write($timeout)) { my $req = "GET /index.php HTTP/1.0\n\n"; print $socket $req; print <$socket>; # Got "400 Bad Request" from HTTPS server. } else { print "Connect timeout.\n"; } close $socket; exit;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Non-blocking socket win32 not work with IO::Socket::SSL
by Anonymous Monk on Mar 28, 2008 at 08:46 UTC | |
by Viperii (Initiate) on Mar 28, 2008 at 13:18 UTC |