<?xml version="1.0" encoding="windows-1252"?>
<node id="539883" title="puudeli's scratchpad" created="2006-03-29 02:03:08" updated="2006-03-28 21:03:08">
<type id="182711">
scratchpad</type>
<author id="539881">
puudeli</author>
<data>
<field name="doctext">
&lt;p&gt;&lt;b&gt;SOLVED&lt;/b&gt;: &lt;c&gt;setsockopt(SOCKET, SOL_SOCKET, SO_LINGER, pack('II', 1,0))&lt;/c&gt;
SO_LINGER takes two arguments, on/off and time&lt;/p&gt;

&lt;p&gt;
Why does &lt;c&gt;setsockopt&lt;/c&gt; give me: &lt;c&gt;setsockopt: Invalid argument at ./socket_connection_flooding.pl line 55.&lt;/c&gt;

&lt;code&gt;

    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: $!";
&lt;/code&gt;


&lt;/p&gt;</field>
</data>
</node>
