SOLVED: setsockopt(SOCKET, SOL_SOCKET, SO_LINGER, pack('II', 1,0))
SO_LINGER takes two arguments, on/off and time
Why does setsockopt give me: setsockopt: Invalid argument at ./socket_connection_flooding.pl line 55.
use Socket qw(:all);
use POSIX;
my ($socket, $remote,$port, $iaddr, $paddr, $proto, $line);
$remote = shift || 'localhost';
$port = shift;
$iaddr = inet_aton($remote) || usage("no host: $remote");
$paddr = sockaddr_in($port, $iaddr);
$proto = getprotobyname('tcp');
socket(SOCKET, PF_INET, SOCK_STREAM, $proto)
|| die "socket: $!";
setsockopt(SOCKET, SOL_SOCKET, SO_LINGER, pack('i',0))
|| die "setsockopt: $!";
connect(SOCKET, $paddr) || die "connect: $!";
close (SOCKET) || die "close: $!";
|