#!/usr/bin/perl use Socket; $addr = shift; $port = shift; die "Usage; $0 \n" unless ($addr and $port); $proto = getprotobyname('tcp'); print "proto=[$proto]\n"; print "AF_INET=[", AF_INET, "]\n"; print "SOCK_STREAM=[", SOCK_STREAM, "]\n"; #******************************************************************* print "\nConnect using sockaddr_in method...\n"; $paddr = sockaddr_in($port, pack('C4', split('\.', $addr))); printf "paddr=[%d, %d, %d.%d.%d.%d]\n", unpack('S n C4', $paddr); socket(SOCK, AF_INET, SOCK_STREAM, $proto) || die "socket: $!\n"; connect(SOCK, $paddr) || die "connect: $!\n"; print "Connection to $addr:$port established\n"; close (SOCK) || die "close: $!"; #******************************************************************* print "\nConnect using pack method...\n"; $paddr = pack('S n C4 x8', AF_INET, $port, split('\.', $addr)); printf "paddr=[%d, %d, %d.%d.%d.%d]\n", unpack('S n C4', $paddr); socket(SOCK, AF_INET, SOCK_STREAM, $proto) || die "socket: $!\n"; connect(SOCK, $paddr) || die "connect: $!\n"; print "Connection to $addr:$port established\n"; close (SOCK) || die "close: $!\n"; exit;