#THE SERVER #!/usr/bin/perl -w use strict; use IO::Socket; my $port = 6941; my $auth = " " ; my $code = " " ; #PREVENT ZOMBIES $SIG{CHLD} = 'IGNORE'; #CREATE SOCKET my $listen_socket = IO::Socket::INET->new(LocalPort => $port, Listen => 10, Proto => 'tcp', Reuse => 1); die unless $listen_socket; warn "Server ready. Waiting for connections ... \n"; #GET CONNECTIONS my $socket = $listen_socket->accept; #REQUEST AUTHORISATION print $socket "Connected to Server\n"; print $socket "Please insert auth code:\n"; #ASK FOR CODE $code = <$socket>; #GET CODE verify($code,$socket); #SEND FOR VERIFICATION exit; #SHOULD NEVER GET HERE #VERIFY AUTHORISATION CODE sub verify{ my ($code,$socket) = @_; my $auth_code = "6941"; if($code eq $auth_code) { $auth = "1"; print $socket "Accepted\n\n"; load_interface($socket); } else { $auth = "0"; print $socket "Good bye\n\n"; exit; } } sub load_interface{ my $socket = $_[0]; exit unless( $auth == "1"); open(CONFIG,"conifg") || die "Can't load config file\n"; #THIS WILL BE A LIST OF COMMANDS my $data = " "; while() { $data = $data . $_; } print $socket $data; print $socket "\n\nWhat would you like to do (0\1\2\3\....): "; my $cmd = <$socket>; #GET COMMAND cmd($cmd,$socket); } #THIS WILL DO COMMAND. ONLY FOR TEST PURPOSES AT THE MOMENT sub cmd{ my( $cmd,$socket) = @_; exit if($cmd == "q"); print $socket "\n\nYou chose option $cmd!!!!!!\n\n"; load_interface(); }