From ded480239d457c0921262e9095503824fcc7bf6e Mon Sep 17 00:00:00 2001 From: wolfgang Clauss Date: Sun, 28 Aug 2016 13:50:17 +0200 Subject: [PATCH 1/2] created socket server for better debugging of incoming bytes - initial commit --- README.md | 5 +++ server-hexdump.php | 102 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 server-hexdump.php diff --git a/README.md b/README.md index f5309cd..b6a60a4 100644 --- a/README.md +++ b/README.md @@ -20,4 +20,9 @@ Run > php server.php > > telnet 127.0.0.1 4444 +--------------------- + +Run for better debugging of incoming bytes. Output is similar to Unix command ```hexdump -C``` + +> php server-hexdump.php diff --git a/server-hexdump.php b/server-hexdump.php new file mode 100644 index 0000000..29c44a7 --- /dev/null +++ b/server-hexdump.php @@ -0,0 +1,102 @@ +getAddress(), $client->getPort() ); + //echo "client: ".print_r($client,true)."\n"; + printf( " PID Addr Hex-Values Characters\n"); + printf( "==============================================================\n"); + while( true ) { + $read = $client->read(); + if( $read != '' ) { + $client->send( '[' . date( DATE_RFC822 ) . '] ' . $read ); + } + else { + break; + } + + if( preg_replace( '/[^a-z]/', '', $read ) == 'exit' ) { + break; + } + if( $read === null ) { + printf( "[%s] Disconnected\n", $client->getAddress() ); + return false; + } + else { + //printf( "%d [%s] recieved: %s\n", getmypid(), $client->getAddress(), $read ); + $len=strlen($read); + printf( "%6d recieved: %d (%04X) Bytes:\n", getmypid(),$len,$len); + $adresse=0; + for ($i=0; $i<$len+(8-($len%8)); $i++) { + if ($i % 8 == 0) + printf("%6d %04X: ",getmypid(),$adresse); + if (($i % 4) ==0) + echo " "; + if ($i<$len) { + $zeichen=substr($read,$i,1); + printf("%02x ",ord($zeichen)); + } else { + echo " "; + } + if (($i+1)%8==0) { + echo " |"; + for ($j=$adresse; $j<$adresse+8; $j++) { + if ($j>=$len) { + echo " "; + continue; + } + $zeichen=substr($read,$j,1); + if (ctype_print($zeichen)) + echo $zeichen; + else { + $zeichen = addcslashes($zeichen,"\n\r\t"); + if (ctype_print($zeichen)) + echo $zeichen; + else + echo "."; + } + } + echo "|\n"; + $adresse += 8; + } + + } + } + } + $client->close(); + printf( "[%s] Disconnected\n", $client->getAddress() ); + +} + +require "sock/SocketServer.php"; + +$server = new \Sock\SocketServer(); +$server->init(); +$server->setConnectionHandler( 'onConnect' ); +$server->listen(); From db64120ba42f4c839cad3f1ff685251c2b7e19be Mon Sep 17 00:00:00 2001 From: wolfgang Clauss Date: Sun, 28 Aug 2016 13:51:38 +0200 Subject: [PATCH 2/2] formatting --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b6a60a4..c041443 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ Run > php server.php > > telnet 127.0.0.1 4444 + + --------------------- Run for better debugging of incoming bytes. Output is similar to Unix command ```hexdump -C```