diff --git a/mail_ssl.t b/mail_ssl.t
index c0521b7..af29205 100644
--- a/mail_ssl.t
+++ b/mail_ssl.t
@@ -12,8 +12,6 @@
 
 use Test::More;
 
-use Socket qw/ :DEFAULT $CRLF /;
-
 BEGIN { use FindBin; chdir($FindBin::Bin); }
 
 use lib 'lib';
@@ -294,14 +292,8 @@
 
 sub get_ssl_socket {
 	my ($port, $ses) = @_;
-	my $s;
 
-	my $dest_ip = inet_aton('127.0.0.1');
-	my $dest_serv_params = sockaddr_in(port($port), $dest_ip);
-
-	socket($s, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!";
-	connect($s, $dest_serv_params) or die "connect: $!";
-
+	my $s = IO::Socket::INET->new('127.0.0.1:' . port($port));
 	my $ssl = Net::SSLeay::new($ctx) or die("Failed to create SSL $!");
 	Net::SSLeay::set_session($ssl, $ses) if defined $ses;
 	Net::SSLeay::set_fd($ssl, fileno($s));
diff --git a/ssl_certificate.t b/ssl_certificate.t
index c15ec2b..43ce4ce 100644
--- a/ssl_certificate.t
+++ b/ssl_certificate.t
@@ -12,7 +12,7 @@
 
 use Test::More;
 
-use Socket qw/ :DEFAULT CRLF /;
+use Socket qw/ CRLF /;
 
 BEGIN { use FindBin; chdir($FindBin::Bin); }
 
@@ -214,15 +214,8 @@
 
 sub get_ssl_socket {
 	my ($host, $port, $ses) = @_;
-	my $s;
 
-	my $dest_ip = inet_aton('127.0.0.1');
-	$port = port($port);
-	my $dest_serv_params = sockaddr_in($port, $dest_ip);
-
-	socket($s, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!";
-	connect($s, $dest_serv_params) or die "connect: $!";
-
+	my $s = IO::Socket::INET->new('127.0.0.1:' . port($port));
 	my $ctx = Net::SSLeay::CTX_new() or die("Failed to create SSL_CTX $!");
 	my $ssl = Net::SSLeay::new($ctx) or die("Failed to create SSL $!");
 	Net::SSLeay::set_tlsext_host_name($ssl, $host);
diff --git a/ssl_certificate_perl.t b/ssl_certificate_perl.t
index e76ce59..35d8469 100644
--- a/ssl_certificate_perl.t
+++ b/ssl_certificate_perl.t
@@ -12,8 +12,6 @@
 
 use Test::More;
 
-use Socket;
-
 BEGIN { use FindBin; chdir($FindBin::Bin); }
 
 use lib 'lib';
@@ -114,15 +112,8 @@
 
 sub get_ssl_socket {
 	my ($host, $port) = @_;
-	my $s;
 
-	my $dest_ip = inet_aton('127.0.0.1');
-	$port = port($port);
-	my $dest_serv_params = sockaddr_in($port, $dest_ip);
-
-	socket($s, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!";
-	connect($s, $dest_serv_params) or die "connect: $!";
-
+	my $s = IO::Socket::INET->new('127.0.0.1:' . port($port));
 	my $ctx = Net::SSLeay::CTX_new() or die("Failed to create SSL_CTX $!");
 	my $ssl = Net::SSLeay::new($ctx) or die("Failed to create SSL $!");
 	Net::SSLeay::set_tlsext_host_name($ssl, $host);
diff --git a/ssl_sni_reneg.t b/ssl_sni_reneg.t
index 464bbea..86a4b19 100644
--- a/ssl_sni_reneg.t
+++ b/ssl_sni_reneg.t
@@ -12,7 +12,7 @@
 
 use Test::More;
 
-use Socket qw/ :DEFAULT CRLF /;
+use Socket qw/ CRLF /;
 
 BEGIN { use FindBin; chdir($FindBin::Bin); }
 
@@ -150,15 +150,11 @@
 	my ($port) = @_;
 	my $s;
 
-	my $dest_ip = inet_aton('127.0.0.1');
-	my $dest_serv_params = sockaddr_in(port($port), $dest_ip);
-
 	eval {
 		local $SIG{ALRM} = sub { die "timeout\n" };
 		local $SIG{PIPE} = sub { die "sigpipe\n" };
 		alarm(8);
-		socket($s, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!";
-		connect($s, $dest_serv_params) or die "connect: $!";
+		$s = IO::Socket::INET->new('127.0.0.1:' . port($port));
 		alarm(0);
 	};
 	alarm(0);
diff --git a/ssl_verify_client.t b/ssl_verify_client.t
index c0507aa..ce5fb80 100644
--- a/ssl_verify_client.t
+++ b/ssl_verify_client.t
@@ -12,7 +12,7 @@
 
 use Test::More;
 
-use Socket qw/ :DEFAULT CRLF /;
+use Socket qw/ CRLF /;
 
 BEGIN { use FindBin; chdir($FindBin::Bin); }
 
@@ -185,12 +185,7 @@
 
 	$host = $sni if !defined $host;
 
-	my $dest_ip = inet_aton('127.0.0.1');
-	my $dest_serv_params = sockaddr_in(port(8081), $dest_ip);
-
-	socket(my $s, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!";
-	connect($s, $dest_serv_params) or die "connect: $!";
-
+	my $s = IO::Socket::INET->new('127.0.0.1:' . port(8081));
 	my $ctx = Net::SSLeay::CTX_new() or die("Failed to create SSL_CTX $!");
 	Net::SSLeay::set_cert_and_key($ctx, "$d/$cert.crt", "$d/$cert.key")
 		or die if $cert;
diff --git a/stream_ssl.t b/stream_ssl.t
index ca79d4f..0ccf4f6 100644
--- a/stream_ssl.t
+++ b/stream_ssl.t
@@ -13,7 +13,7 @@
 use Test::More;
 
 use POSIX qw/ mkfifo /;
-use Socket qw/ :DEFAULT $CRLF /;
+use Socket qw/ $CRLF /;
 
 BEGIN { use FindBin; chdir($FindBin::Bin); }
 
@@ -182,14 +182,8 @@
 
 sub get_ssl_socket {
 	my ($port, $ses) = @_;
-	my $s;
 
-	my $dest_ip = inet_aton('127.0.0.1');
-	my $dest_serv_params = sockaddr_in($port, $dest_ip);
-
-	socket($s, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!";
-	connect($s, $dest_serv_params) or die "connect: $!";
-
+	my $s = IO::Socket::INET->new('127.0.0.1:' . $port);
 	my $ssl = Net::SSLeay::new($ctx) or die("Failed to create SSL $!");
 	Net::SSLeay::set_session($ssl, $ses) if defined $ses;
 	Net::SSLeay::set_fd($ssl, fileno($s));
diff --git a/stream_ssl_certificate.t b/stream_ssl_certificate.t
index 9d63092..59a4d27 100644
--- a/stream_ssl_certificate.t
+++ b/stream_ssl_certificate.t
@@ -12,8 +12,6 @@
 
 use Test::More;
 
-use Socket qw/ :DEFAULT CRLF /;
-
 BEGIN { use FindBin; chdir($FindBin::Bin); }
 
 use lib 'lib';
@@ -192,15 +190,8 @@
 
 sub get_ssl_socket {
 	my ($host, $port, $ses) = @_;
-	my $s;
 
-	my $dest_ip = inet_aton('127.0.0.1');
-	$port = port($port);
-	my $dest_serv_params = sockaddr_in($port, $dest_ip);
-
-	socket($s, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!";
-	connect($s, $dest_serv_params) or die "connect: $!";
-
+	my $s = IO::Socket::INET->new('127.0.0.1:' . port($port));
 	my $ctx = Net::SSLeay::CTX_new() or die("Failed to create SSL_CTX $!");
 	my $ssl = Net::SSLeay::new($ctx) or die("Failed to create SSL $!");
 	Net::SSLeay::set_tlsext_host_name($ssl, $host);
diff --git a/stream_ssl_variables.t b/stream_ssl_variables.t
index b177d7c..61fdee4 100644
--- a/stream_ssl_variables.t
+++ b/stream_ssl_variables.t
@@ -12,8 +12,6 @@
 
 use Test::More;
 
-use Socket;
-
 BEGIN { use FindBin; chdir($FindBin::Bin); }
 
 use lib 'lib';
@@ -127,14 +125,8 @@
 
 sub get_ssl_socket {
 	my ($port, $ses, $name) = @_;
-	my $s;
 
-	my $dest_ip = inet_aton('127.0.0.1');
-	my $dest_serv_params = sockaddr_in($port, $dest_ip);
-
-	socket($s, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!";
-	connect($s, $dest_serv_params) or die "connect: $!";
-
+	my $s = IO::Socket::INET->new('127.0.0.1:' . $port);
 	my $ctx = Net::SSLeay::CTX_new() or die("Failed to create SSL_CTX $!");
 	my $ssl = Net::SSLeay::new($ctx) or die("Failed to create SSL $!");
 	Net::SSLeay::set_tlsext_host_name($ssl, $name) if defined $name;
diff --git a/stream_ssl_verify_client.t b/stream_ssl_verify_client.t
index 92a85f5..f9c06e8 100644
--- a/stream_ssl_verify_client.t
+++ b/stream_ssl_verify_client.t
@@ -13,8 +13,6 @@
 
 use Test::More;
 
-use Socket;
-
 BEGIN { use FindBin; chdir($FindBin::Bin); }
 
 use lib 'lib';
@@ -142,12 +140,7 @@
 sub get {
 	my ($port, $cert) = @_;
 
-	my $dest_ip = inet_aton('127.0.0.1');
-	my $dest_serv_params = sockaddr_in(port($port), $dest_ip);
-
-	socket(my $s, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!";
-	connect($s, $dest_serv_params) or die "connect: $!";
-
+	my $s = IO::Socket::INET->new('127.0.0.1:' . port($port));
 	my $ctx = Net::SSLeay::CTX_new() or die("Failed to create SSL_CTX $!");
 	Net::SSLeay::set_cert_and_key($ctx, "$d/$cert.crt", "$d/$cert.key")
 		or die if $cert;
