config.php 3.41 KB
<?php 

//session_start();

class Tcpconnection
{
 private $buff;
 public function __construct($buff)
 {
  $this->buff=$buff;
 }
  public function connect()
  {
   $data=array();
   $ip=$_SERVER['SERVER_ADDR'];
   ini_set('display_errors', true); error_reporting(E_ALL); // <- for debugging purposes only
   $socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
   if ( !$socket ) {
    $errno = socket_last_error();
    $error = sprintf('%s (%d)', socket_strerror($errno), $errno);
    trigger_error($error, E_USER_ERROR);
   }
   if (socket_connect($socket, $ip, 502) ) {
    // $errno = socket_last_error($socket);
    // $error = sprintf('%s (%d)', socket_strerror($errno), $errno);
    // trigger_error($error, E_USER_ERROR);
    //echo "Connected";
   }

   $length = strlen($this->buff);
   $sent = socket_write($socket, $this->buff, $length);

   // echo $sent;
   
   if ( FALSE===$sent ) {
    $errno = socket_last_error($socket);
    $error = sprintf('%s (%d)', socket_strerror($errno), $errno);
    trigger_error($error, E_USER_ERROR);
   }
   else if($sent>0)
   {
    // echo $sent." the number of socket resources contained "; 
   }
   else if ( $length!==$sent ) {
    $msg = sprintf('only %d of %d bytes sent', $length, $sent);
    trigger_error($msg, E_USER_NOTICE);
   }
  }
  private function textBinASCII($text)
  {
  $bin = array();
  for($i=0; strlen($text)>$i; $i++)
   $bin[] = bindec(ord($text[$i]));

  //echo hexdec($text[$i])."\n";
  return implode(',',$bin);
 } 
 private function ASCIIBinText($bin)
 {
  $text = array();
  $bin = explode(" ", $bin);
  for($i=0; count($bin)>$i; $i++)
   $text[] = bindec($bin[$i]);
  return implode(",",$text);
 }
 public function Connect_Socket()
 {
  $hold=array();
  $ip=$_SERVER['SERVER_ADDR'];
  ini_set('display_errors', true); error_reporting(E_ALL); // <- for debugging purposes only
  $socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  if ( !$socket ) {
   $errno = socket_last_error();
   $error = sprintf('%s (%d)', socket_strerror($errno), $errno);
   trigger_error($error, E_USER_ERROR);
  }
  if (socket_connect($socket, $ip, 502) ) {
   // $errno = socket_last_error($socket);
   // $error = sprintf('%s (%d)', socket_strerror($errno), $errno);
   // trigger_error($error, E_USER_ERROR);
   //echo "Connected";
  }
  
  $length = strlen($this->buff);
  $sent = socket_write($socket, $this->buff, $length);

  // echo $sent;
    
  if ( FALSE===$sent ) {
   $errno = socket_last_error($socket);
   $error = sprintf('%s (%d)', socket_strerror($errno), $errno);
   trigger_error($error, E_USER_ERROR);
  }
  else if($sent>0)
  {
   // echo $sent." the number of socket resources contained "; 
  }
  else if ( $length!==$sent ) {
   $msg = sprintf('only %d of %d bytes sent', $length, $sent);
   trigger_error($msg, E_USER_NOTICE);
  }

  if(false !== ($bytes = socket_recv($socket,$buf,12,MSG_PEEK))) {
   //echo "Read $bytes bytes from socket_recv(). Closing socket...";
   //echo "<br>";
   //echo $bytes;
  }
  else {
   echo "socket_recv() failed; reason: " . socket_strerror(socket_last_error($socket)) . "\n";
  }
  socket_close($socket);
   //01 02 00 00 00 05 01 04 02 00 01

  for ($i=0; $i <strlen($buf) ; $i++) { 
   $hold[]=hexdec(ord($buf[$i]));
   //printf("%d",hexdec(ord($buf[$i])));
   //echo "\n";
  }
  $function=$hold[count($hold)-1];
  return $function;
 }
}

 ?>