#! /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 ) ) { while ( my $chunk = ) { 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;