У меня работает экземпляр Google Compute Engine. Я установил php5, apache2 и mysql на экземпляр вычислительного движка.
Я открыл порт в настройках брандмауэра, а также «tcp: 3000». Затем я поместил этот код в папку / var / www /, чтобы открыть php-сервер и сделать несколько пользовательских ответов.
Однако его не в состоянии открыть и связать сокет. Можете ли вы помочь?
Это мой код:
<?php
error_reporting(0);
set_time_limit(0);
date_default_timezone_set('Asia/Calcutta');
$address = 'localhost';
$port = 3000;
$max_clients = 10;
$datetime = date("Y-m-d H:i:s");
if(!($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't create socket: [$errorcode] $errormsg \n");
writeToFile('edmerrorlog.txt', $datetime." :: ".'Couldnt create socket: ['.$errorcode.']'. $errormsg);
}
echo "New Socket created \n";
/*if (!socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1)) {
echo socket_strerror(socket_last_error($sock));
writeToFile('edmerrorlog.txt', $datetime." :: ".socket_strerror(socket_last_error($sock)));
exit;
}
*/
// Bind the source address
if( !socket_bind($sock, $address , $port) )
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not bind socket : [$errorcode] $errormsg \n");
writeToFile('edmerrorlog.txt', $datetime." :: ".'Could not bind socket : ['.$errorcode.']'. $errormsg);
}
echo "Socket bind OK \n";
if(!socket_listen ($sock , 10))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not listen on socket : [$errorcode] $errormsg \n");
writeToFile('edmerrorlog.txt', $datetime." :: ".'Could not listen on socket1 : ['.$errorcode.']'. $errormsg);
}
Задача ещё не решена.
Других решений пока нет …