X-Git-Url: http://git.maemo.org/git/?p=dh-make-perl;a=blobdiff_plain;f=dev%2Farm%2Flibnet-ssleay-perl%2Flibnet-ssleay-perl-1.35%2Fexamples%2Ftcpecho.pl;fp=dev%2Farm%2Flibnet-ssleay-perl%2Flibnet-ssleay-perl-1.35%2Fexamples%2Ftcpecho.pl;h=cac04fbdebbd96412d07d9183bb97b841c49c57c;hp=0000000000000000000000000000000000000000;hb=f477fa73365d491991707e7ed9217b48d6994551;hpb=da95c414033799c3a62606f299c3c00b5c77ca11 diff --git a/dev/arm/libnet-ssleay-perl/libnet-ssleay-perl-1.35/examples/tcpecho.pl b/dev/arm/libnet-ssleay-perl/libnet-ssleay-perl-1.35/examples/tcpecho.pl new file mode 100755 index 0000000..cac04fb --- /dev/null +++ b/dev/arm/libnet-ssleay-perl/libnet-ssleay-perl-1.35/examples/tcpecho.pl @@ -0,0 +1,58 @@ +#!/usr/bin/perl -w +# tcpecho.pl - Echo server using TCP +# +# Copyright (c) 2003 Sampo Kellomaki , All Rights Reserved. +# $Id: tcpecho.pl,v 1.2 2003/08/17 07:44:47 sampo Exp $ +# 17.8.2003, created --Sampo +# +# Usage: ./tcpecho.pl *port* +# +# This server always binds to localhost as this is all that is needed +# for tests. + +die "Usage: ./tcpecho.pl *port*\n" unless $#ARGV == 0; +($port) = @ARGV; +$our_ip = "\x7F\0\0\x01"; + +$trace = 2; +use Socket; +use Net::SSLeay; + +# +# Create the socket and open a connection +# + +$our_serv_params = pack ('S n a4 x8', &AF_INET, $port, $our_ip); +socket (S, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!"; +bind (S, $our_serv_params) or die "bind: $! (port=$port)"; +listen (S, 5) or die "listen: $!"; + +#while (1) { # uncomment to turn off "one shot" behaviour + print "tcpecho $$: Accepting connections on port $port...\n" if $trace>1; + ($addr = accept(Net::SSLeay::SSLCAT_S, S)) or die "accept: $!"; + $old_out = select(Net::SSLeay::SSLCAT_S); $| = 1; select ($old_out); # Piping hot! + + if ($trace) { + ($af,$client_port,$client_ip) = unpack('S n a4 x8',$addr); + @inetaddr = unpack('C4',$client_ip); + print "$af connection from " . join ('.', @inetaddr) + . ":$client_port\n" if $trace;; + } + + # + # Connected. Exchange some data. + # + + $got = Net::SSLeay::tcp_read_all() or die "$$: read failed"; + print "tcpecho $$: got " . length($got) . " bytes\n" if $trace==2; + print "tcpecho: Got `$got' (" . length ($got) . " chars)\n" if $trace>2; + $got = uc $got; + Net::SSLeay::tcp_write_all($got) or die "$$: write failed"; + $got = ''; # in case it was huge + + print "tcpecho: Tearing down the connection.\n\n" if $trace>1; + close Net::SSLeay::SSLCAT_S; +#} +close S; + +__END__