Sindbad~EG File Manager
<!DOCTYPE html>
<?php
$serverAddress = 'localhost'; // Adjust the server address
$serverPort = 12347; // Adjust the server port
$timeout = 5; // Connection timeout in seconds
$startupDelay = 2; // Delay for server startup in seconds, if server is not already running
if (!(isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' ||
$_SERVER['HTTPS'] == 1) ||
isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'))
{
$redirect = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $redirect);
exit();
}
?>
<html>
<head>
<title>PHP to C Socket Example</title>
</head>
<body>
<form action="index.php" method="post">
<input type="text" name="data" placeholder="polygon 7">
<input type="submit" value="Send">
</form>
<?php
echo("line 30\n");
session_start();
$sessionId = session_id(); // guaranteed not to contain a pipe character
ini_set('display_errors', 1);
error_reporting(E_ALL);
// Function to check if the server is running
function isServerRunning()
{
echo("hey\n");
$command = 'ps aux | grep PolygonDemo | grep -v grep | wc -l';
$output = shell_exec($command);
$processCount = intval(trim($output));
echo "within isServerRunning; $processCount\n";
return $processCount > 0;
}
// Check if the server is running
if (!isServerRunning())
{
// Server is not running, start it
$startCommand = './PolygonDemo'; // path to server program
$startCommend = $StartCommon . ' > /dev/null 2>&1 &'; // background
echo("Server is not running, so it will now be started.\n")
echo("Running $startCommand \n");
// Start the server in the background
shell_exec($startCommand);
// Wait for the server to start up
sleep($startupDelay);
}
function send_to_server($socket, $message)
{
$sessionId = session_id();
$data = $sessionId . "|" . $message;
socket_write($socket, $data, strlen($data));
}
if ($_SERVER["REQUEST_METHOD"] === "POST")
{
$data = $_POST["data"];
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false)
{
echo "Socket creation failed: " . socket_strerror(socket_last_error()) . "<br>";
} else
{
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => $timeout, "usec" => 0));
$result = socket_connect($socket, $serverAddress, $serverPort);
if ($result)
{
send_to_server($socket, $data);
$response = socket_read($socket, (1 << 16));
if ($response === false)
{
$errcode = socket_last_error($socket);
$message = socket_strerror($errcode);
echo "Socket_read error: $message<br>";
} else
{
echo "<svg id='svgCanvas' width='204' height='204' xmlns='http://www.w3.org/2000/svg'>";
echo $response; // this is the SVG code to draw the polygon
echo "</svg>";
}
// now fetch the polygon history
socket_close($socket); // because server has already closed it
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, $serverAddress, $serverPort); // so connect again
send_to_server($socket,"polygon_history");
$response = socket_read($socket, (1<<16));
if(strlen($response) == 0)
{
echo socket_strerror(socket_last_error());
}
else
{
echo "Your recent previous polygons in this session: " . $response;
}
socket_close($socket);
}
else
{
echo "Failed to connect to the C program: " . socket_strerror(socket_last_error()) . "<br>";
}
}
}
?>
</body>
</html>
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists