Добрый день.
Имею PHP-скрипт, запущенный в режиме CLI и постоянно висящий в памяти.
Он создаёт сокет по адресу 127.0.0.1:2014 и ожидает данных по UDP
Код работает под Windows XP SP3, Windows Server 2003, Windows 7 x64
Однако на некоторых компьютерах работать отказывается.
Выдаёт следующую ошибку: "10045: Предпринятая операция не поддерживается для выбранного типа объекта."
Пробовал добавлять порт и php.exe в исключения брэндмауэра, пробовал отключать брэндмауэр. Антивирус и файервол отключены. Эффекта не даёт
Какие могут причины возникновения ошибки? И как с этим бороться?
$socketAddress = "127.0.0.1";
$socketPort = 2014;
// создаём экземпляр сокета для адреса IPv4, типа коммуникации DGRAM, протокола UDP
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
// подключаем сокет к определённому адресу на выбранный порт
$resSocketConnect = socket_bind($sock, $socketAddress, $socketPort);
if ($resSocketConnect) {
$dataBuffer = '';
$ipBuffer = '';
$portBuffer = 0;
// получаем данные из сокета
$resRecvfrom = socket_recvfrom($sock, $dataBuffer, $socketMaxSize, MSG_WAITALL, $ipBuffer, $portBuffer);
// если произошла ошибка при получении данных
if (!$resRecvfrom) {
var_dump(socket_last_error());
}
}