All pastes #585744 Raw Edit

Something

public text v1 · immutable
#585744 ·published 2007-06-23 12:39 UTC
rendered paste body
#! /usr/bin/perl -w

# tcp_s4 [port]

use Socket;

use constant SIMPLE_TCP_PORT => 4001;

my $local_port = shift || SIMPLE_TCP_PORT;

my $trans_serv = getprotobyname( 'tcp' );

my $local_addr = sockaddr_in( $local_port, INADDR_ANY );

socket( TCP_SOCK, PF_INET, SOCK_STREAM, $trans_serv )
    or die "tcp_s4: socket creation failed: $!\n";

setsockopt( TCP_SOCK, SOL_SOCKET, SO_REUSEADDR, 1 )
    or warn "tcp_s4: could not set socket option: $!\n";

bind( TCP_SOCK, $local_addr )
    or die "tcp_s4: bind to address failed: $!\n";

listen( TCP_SOCK, SOMAXCONN )
    or die "tcp_s4: listen couldn't: $!\n";

warn "Server starting up on port: $local_port.\n";

my $from_who;

while ( $from_who = accept( CLIENT_SOCK, TCP_SOCK ) )
{
    my $chunk ="";
    while ( !$chunk eq "^]" )
    {   my $chunk = <CLIENT_SOCK>
        chomp($chunk);
        print "C: ".$chunk."\n";
        send( CLIENT_SOCK, $chunk."\n", 0 )
        or warn "tcp_s1: problem with send: $!\n";
    }

    close CLIENT_SOCK
        or warn "tcp_s4: close failed: $!\n";

}

close TCP_SOCK;