Я надеюсь, что я не задаю вопрос о спаме, потому что я не могу найти вопрос об этом.
Я пишу слушатель порта сокета для прослушивания определенного 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);
?>
Как я сказал ранее:
Когда я запускаю этот скрипт с PHP CLI, все в порядке, и мое устройство отправляет пакет TCP, а мой сервер получает пакет TCP и отображает эту информацию. Но когда я запускаю его по wamp с локальным IP 127.0.0.1, это выдает мне эту ошибку.
до здесь:
Изменить два:
Мой порт скрипта: 41260
Я гуглю некоторые ключевые слова и нахожу эту документацию 🙁привязывать) на официальном сайте Apache. И я решил поделиться результатом с другими пользователями.
Других решений пока нет …