--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www-thermferm/socketmessage.php Thu Jul 10 11:46:27 2014 +0200 @@ -0,0 +1,89 @@ +<?php +/***************************************************************************** + * Copyright (C) 2014 + * + * Michiel Broek <mbroek at mbse dot eu> + * + * This file is part of ThermFerm + * + * This 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, or (at your option) any + * later version. + * + * ThermFerm is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ThermFerm; see the file COPYING. If not, write to the Free + * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + *****************************************************************************/ + +function open_socket() +{ + $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); + + if (!($sock === false)) { + if (socket_connect($sock, "localhost", 6554)) { + socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 15, 'usec' => 0)); + } else { + socket_close($sock); + } + } + return $sock; +} + + + +function startsWith($haystack, $needle) +{ + return !strncmp($haystack, $needle, strlen($needle)); +} + + + +error_reporting(E_ALL ^ E_WARNING); +if(isset($_POST['messageType'])){ + $messageType = $_POST['messageType']; +} else { + die("messageType not set"); +} + + + +if(isset($_POST['message'])){ + // message with data + $data = $_POST['message']; +} + + + +$sock = open_socket(); +if ($sock !== false) { + if (isset($data) && $data != "") { + socket_write($sock, $messageType . " " . $data, 4096); + } else { + socket_write($sock, $messageType, 4096); + } + + /* + * Multiple reads until the remote closed the connection + */ + $answer = ""; + while (1) { + $line = socket_read($sock, 4096); + if ($line === '') + break; + $answer .= $line; + } + + /* + * Can be a multiline answer, the answer includes \r\n sequences. + */ + echo $answer; + socket_close($sock); +} + +