Как запустить скрипт прослушивания портов PHP с WAMP, а не с CLI PHP? - PullRequest
0 голосов
/ 23 мая 2018

Я надеюсь, что я не задаю вопрос о спаме, потому что я не могу найти вопрос об этом.Я пишу слушатель порта сокета для прослушивания определенного IP: PORT, используя PHP для получения пакетов TCP от устройств слежения GPS.Когда я запускаю скрипт с этой командой:

$php.exe -q My/Script/Files/Path.PHP

все в порядке, мой прослушиватель портов сервера работает успешно, и я получаю данные с устройств, но когда я хочу открыть их с помощью своего браузера (wamp -> localhost), это говоритчто

Warning: socket_bind(): unable to bind address [10049]: The requested address is not valid in its context.

Как я могу решить эту проблему?С наилучшими пожеланиями.

Изменить один:
Код сценария моего сервера:

<?php
error_reporting(E_ALL);
set_time_limit(0);
ob_implicit_flush();

$address = '*.*.*.*'; //I put Here My System Local IPV4 Address (163.*.*.*)
$port = *****; //I put Here My Server Opened Port Number and I turned off the firewall to test

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
    echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
}

if (socket_bind($sock, $address, $port) === false) {
    echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
}

if (socket_listen($sock, 1) === false) {
    echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
}

if ($msgsock = socket_accept($sock)) === false) {
        echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
 }    
if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
            echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n";
 }
 $buf = trim($buf);
 $clientResponse = explode(',', $buf);
 foreach($clientResponse as $key=>$value) {
     echo $key . ' : ' . $value . "<br />";
}
socket_close($msgsock);
socket_close($sock);
?>

Как я уже говорил ранее:
Когда я запускаю этот сценарий с PHPCLI, все в порядке, и мое устройство отправляет пакет TCP, а мой сервер получает пакет TCP и показывает эту информацию.Но когда я запускаю его по wamp с локальным IP 127.0.0.1, это выдает мне эту ошибку.

до здесь:

  • У меня есть VPS-сервер
  • У меня есть статический IP (публичный IP)
  • У меня есть открытый порт TCP с выключенным межсетевым экраном
  • У меня есть локальный IP
  • У меня есть wamp с IP: Порт -> 127.0.0.1:80

Изменить два:
Мой порт скрипта: 41260

1 Ответ

0 голосов
/ 25 мая 2018

Я гуглю некоторые ключевые слова и нахожу эти документы: ( Bind ) на официальном сайте Apache.И я решил поделиться результатом с другими пользователями.

...