Guest User

Untitled

a guest
Aug 3rd, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.72 KB | None | 0 0
  1. <?php
  2.  
  3.  
  4. $ipAddressToListenOn = '192.168.0.100';
  5. $portToListenOn = 9000;
  6.  
  7. $mysqlUser = 'root';
  8. $mysqlPass = '';
  9. $mysqlHost = '127.0.0.1';
  10. $mysqlDatabaseName = 'scanner';
  11. $mysqlSchema = "
  12. create table scanner_data(
  13.    name  varchar(250) not null
  14.  , value varchar(250)
  15.  , dt    datetime
  16.  , key(name)
  17.  , key(dt)
  18. ) engine=memory
  19. ";
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27. try {
  28.     $dsn = "mysql:dbname=$mysqlDatabaseName;host=$mysqlHost";
  29.     $dbh = new PDO($dsn, $user, $password, array(
  30.         PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
  31.       , PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
  32.       , PDO::ATTR_EMULATE_PREPARES => false
  33.     ));
  34.     $dbh->exec($mysqlSchema);
  35.     $addKeyValueStmt = $dbh->prepare("
  36.        insert into scanner_data (name, value, dt) (:name, :value, FROM_UNIXTIME(:dt))
  37.    ");
  38. } catch (PDOException $e) {
  39.     echo 'db err: ' . $e->getMessage();
  40. }
  41.  
  42.  
  43.  
  44. function isValidNameValuePacket($str) {
  45.     return 0 < preg_match('#^\w+\,\w+\,\d+$#Di', $str);
  46. }
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55. set_time_limit (0);
  56. // Create a TCP Stream socket
  57. $sock = socket_create(AF_INET, SOCK_STREAM, 0);
  58.  
  59. // Bind the socket to an address/port
  60. socket_bind($sock, $ipAddressToListenOn, $portToListenOn) or die('Could not bind to address');
  61.  
  62. // Start listening for connections
  63. socket_listen($sock);
  64.  
  65. /* Accept incoming requests and handle them as child processes */
  66. $client = socket_accept($sock);
  67.  
  68. while (true) {
  69.     // block until it can read at least 1 byte, up to 1024 bytes or \n, whichever comes first
  70.     $data = trim(socket_read($client, 1024, PHP_NORMAL_READ));
  71.     if (isValidNameValuePacket($str)) {
  72.         list($name, $value, $dt) = explode(',', $data);
  73.         $addKeyValueStmt->execute(compact('name', 'value', 'dt'));
  74.     }
  75. }
Add Comment
Please, Sign In to add comment