<?php
 
/***************************************************************************
 
 *                          SimpleServer Example 1
 
 *                          ----------------------
 
 *   begin                : Saturday, Dec 4, 2004 - 13:30
 
 *   copyright            : (C) 2004 MC Breit
 
 *   email                : [email protected] - MCB.CC - Free and Open Sources
 
 *   last modified        : 04/12/04 - 23:44 - MC Breit
 
 *   version              : 1.0.0
 
 *
 
 ***************************************************************************/
 
 
/***************************************************************************
 
 *
 
 *   This program is free software; you can redistribute it and/or modify
 
 *   it under the terms of the GNU General Public License as published by
 
 *   the Free Software Foundation; either version 2 of the License, or
 
 *   (at your option) any later version.
 
 *
 
 ***************************************************************************/
 
 
/***************************************************************************
 
 *
 
 *   This example will show how easy to create your own ECHO Server.
 
 *   
 
 *   What should out ECHO Server do?
 
 *   Our ECHO Server should listen to port 8000 on the local ip address
 
 *   127.0.0.1 and waiting for clients conntcting in.
 
 *   On connect of a client it should send a welcome message.
 
 *   While a client is connected, it should wait that the client is
 
 *   sending a "\r\n" and the return the message the cleint sended before.
 
 *   If the client entered "quit" it should close the connection to the
 
 *   client and say "Bye bye..", the same when reciving "shutdown", but
 
 *   then we would completely shutdown the Server.
 
 *
 
 *   To test the server, you can run it using the console and run telnet
 
 *   in an other console window.
 
 *   Then connect to "127.0.0.1 port 8000" with telnet and type anything.
 
 *   For example under Windows you can exec "cmd" and then type in:
 
 *      C:\> telnet 127.0.0.1 8000
 
 *   After that you should see the welcome message.
 
 *   
 
 *   !! Important: Dont forget your firewall settings while testing !!
 
 ***************************************************************************/
 
 
//Kill the max_ex_time (on pure installations not needed)
 
set_time_limit(0);
 
 
 
//Including the main class..
 
include('SimpleServer.class.php');
 
 
//Creating a new server object using port 8000 and the local ip "127.0.0.1".
 
$srv = &new SimpleServer(8000, '127.0.0.1');
 
//Setting the divider of the messages to \r\n.
 
$srv->set_msg_divider("\r\n");
 
 
//Main loop to listen for clients..
 
while( $srv->listen() )
 
{
 
  //Say hello to the client..
 
  $srv->put("Welcome to our PHP-Echo Server!\r\n");
 
  $srv->put("Your IP: ".$srv->remote_ip()."\r\n");
 
  $srv->put("Enter 'quit' to close the connection,\r\n");
 
  $srv->put("or 'shutdown' to shutdown the server.\r\n");
 
 
  //Working loop - Works with the client inside..
 
  while( $srv->is_connected )
 
  {
 
    //Waiting for input from client..
 
    $str = $srv->get();
 
    //What to do with the input?
 
    switch($str)
 
    {
 
      case 'quit':
 
        //Would he quit? Then kick him off!
 
        $srv->put("Bye bye..\r\n");
 
        $srv->close();
 
        break;
 
      case 'shutdown':
 
        //Would he shutdown thois Server? Then do so!
 
        $srv->put("Shuting down..\r\n");
 
        $srv->shutdown();
 
        break;
 
      default:
 
        //Nothing? Ok, than we will ECHO back your string..
 
        $srv->put($str."\r\n");
 
        break;    
 
    }
 
  }
 
  
 
  //Any errors inside this loop?
 
  if( $error = $srv->get_error_str() )
 
  {
 
    print $error;
 
  }
 
}
 
 
//Any errors while shutting down?
 
if( $error = $srv->get_error_str() )
 
{
 
  print $error;
 
}
 
 
//
 
// Thats it folks!
 
//
 
?>
 
 |