Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $ipAddressToListenOn = '192.168.0.100';
- $portToListenOn = 9000;
- $mysqlUser = 'root';
- $mysqlPass = '';
- $mysqlHost = '127.0.0.1';
- $mysqlDatabaseName = 'scanner';
- $mysqlSchema = "
- create table scanner_data(
- name varchar(250) not null
- , value varchar(250)
- , dt datetime
- , key(name)
- , key(dt)
- ) engine=memory
- ";
- try {
- $dsn = "mysql:dbname=$mysqlDatabaseName;host=$mysqlHost";
- $dbh = new PDO($dsn, $user, $password, array(
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
- , PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
- , PDO::ATTR_EMULATE_PREPARES => false
- ));
- $dbh->exec($mysqlSchema);
- $addKeyValueStmt = $dbh->prepare("
- insert into scanner_data (name, value, dt) (:name, :value, FROM_UNIXTIME(:dt))
- ");
- } catch (PDOException $e) {
- echo 'db err: ' . $e->getMessage();
- }
- function isValidNameValuePacket($str) {
- return 0 < preg_match('#^\w+\,\w+\,\d+$#Di', $str);
- }
- set_time_limit (0);
- // Create a TCP Stream socket
- $sock = socket_create(AF_INET, SOCK_STREAM, 0);
- // Bind the socket to an address/port
- socket_bind($sock, $ipAddressToListenOn, $portToListenOn) or die('Could not bind to address');
- // Start listening for connections
- socket_listen($sock);
- /* Accept incoming requests and handle them as child processes */
- $client = socket_accept($sock);
- while (true) {
- // block until it can read at least 1 byte, up to 1024 bytes or \n, whichever comes first
- $data = trim(socket_read($client, 1024, PHP_NORMAL_READ));
- if (isValidNameValuePacket($str)) {
- list($name, $value, $dt) = explode(',', $data);
- $addKeyValueStmt->execute(compact('name', 'value', 'dt'));
- }
- }
Add Comment
Please, Sign In to add comment