Browse | Submit A New Snippet | Create A Package

 

clip_listen.pl

Type:
Full Script
Category:
Other
License:
GNU General Public License
Language:
Perl
 
Description:
small TCP server programm which listens for incoming phone numbers

Versions Of This Snippet::

peter bauer
Snippet ID Download Version Date Posted Author Delete
6991.12012-11-26 16:47peter bauer
Changes since last version::
added check if socket is available on startup of the program
6971.02012-11-22 20:17peter bauer

Download a raw-text version of this code by clicking on "Download Version"

 


Latest Snippet Version: :1.1

#!/usr/bin/perl -w
# Autor: peter bauer
# peba@inode.at

use warnings;
use strict;
use IO::Socket;

my $index=0;
my $len=0;
my $res=0;
my $com = "";
my $port = 20000;
my $server = undef;


do {
    $server = new IO::Socket::INET(
    Proto     => 'tcp',
    LocalPort => $port,
    Listen => 1,
    );
    unless (defined $server) {
        print "Socket busy - retrying in 10 seconds\n";
        sleep (10);
        }
    }
until (defined $server);


print "Server running on port $port...\n";
while (my $connection = $server->accept) {
    #print "Client connected at ", scalar(localtime), "\n";
    #print $connection "You're connected to the server!\n";
    while (<$connection>) {
        #print "Client says: $_";
        $index=index($_,"/cgi-bin/message?");
        if ($index > 1) {
            $len=length($_)-32;
            $res=substr $_,$index+17,$len;
	    #print $res."\n";
            $com="./popup_tk.pl ".$res;
            system $com;
	}
        $index=index($_,"Alive"); #end of tcp message reached
	last if $index > 1;       #end the loop end disconnect         
    }
    close $connection;
   #print "Client disconnected\n"; 
}

		

Submit a new version

You can submit a new version of this snippet if you have modified it and you feel it is appropriate to share with others..