Благодарю! Порт действительно открыт, и подключиться к нему не удавалось только с денвера. На реальном сервере происходит подключение.
PHP код:
function getXML($ip, $port, $request, $in1251 = false) { // Функция отправляет запрос к Премьере
$arError = Array();
$fp = fsockopen($ip, $port, $arError["N"], $arError["TEXT"], 7);
if (!$fp) {
return "Connection failed. Error #".$arError["N"].": ".$arError["TEXT"];
} else {
fwrite($fp, $request);
$result = '';
while (!feof($fp)) {
$temp = fread($fp, 256);
$result .= $temp;
}
fclose($fp);
$result = substr($result, strpos($result, "<?xml version='1.0'"));
if ($in1251 and $result) {
$result = preg_replace("/<PN>.*?<\/PN>/", "<PN></PN>", $result);
return $result;
} elseif($result) {
$result = str_replace("<?xml version='1.0' encoding='CP-866' standalone='yes'?>", "<?xml version='1.0' encoding='windows-1251' standalone='yes'?>", $result);
$result = preg_replace("/<PN>.*?<\/PN>/", "<PN></PN>", $result);
$result = iconv("cp866", "windows-1251", $result);
return $result;
}
return "Error";
}
}
При передаче правильных IP и Port (по крайней мере этот порт у машины с указанным IP открыт) функция возвращает Error.
Значит соединиться удалось... может я не верно составил формат запроса? Проверьте, поажлуйста
PHP код:
echo Premiere::getXML(
"255.255.255.255",
9194,
"0000000118&ServiceID=548387668&QueryCode=GetLevelsPlans&Halls=1&ListType=Image&Encoding=Windows-1251&Version=3&Expect=");
P.S.
На такой запрос возвращается Error:
Код:
"0000000046&QueryCode=1&CardCode=1&CardPIN=1111"
А на такой "QueryCode=1&CardCode=1&CardPIN=1111":
Код:
0000000183&ErrorCEE-008
На такой "0000000035&QueryCode=1&CardCode=1&CardPIN=111 1":
Код:
0000000205&ErrorCEE-063
На такой "0000000045&QueryCode=1&CardCode=1&CardPIN=1111&Ve rsion=3":
Код:
0000000212&ErrorCEE-072
На такой "0000000065&QueryCode=1&CardCode=1&CardPIN=1111&Ve rsion=3&ServiceID=548387668":
Код:
0000000205&ErrorCEE-079
Я что-то неправильно делаю?
P.P.S. Наверное через все ошибки пройти придется)))