Не удается отправить смс с помощью кода PHP через сервер Ozeki

Я пытаюсь отправить смс с помощью кода PHP через сервер Ozeki SMS. Я могу правильно отправить смс по direclty, используя интерфейс, предоставленный Ozeki. Но этот фрагмент кода PHP не делает то же самое, что я ожидал. Я подключился к: 127.0.0.1:9333(admin),

Это показывает
Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\...\sendsms.php on line 32
который имеет код $greeting = trim(fgets($ozekiSMSSocket,1000));
Что будет не так?

Это код:

<?php
include("sendsms.php");
$credits = sms_connect('127.0.0.1','9333','admin');

if ($credits>1) {
echo "Sending messages...<br>";
sms_send('+36203105366','Send SMS messages from a PHP client!');
}

echo "Receiving messages...<br>";
$inbox = sms_receive();
echo "$inbox";

sms_disconnect();
?>

Это код в sendsms.php

<?php
$ozekiSMSSocket = '';
$ozekiSMSCredit = 0;
function sms_connect($serverIP,$serverPort,$account) {
global $ozekiSMSSocket;
global $ozekiSMSCredit;
$ret = true;
$ozekiSMSSocket = fsockopen($serverIP, $serverPort, $errno, $errstr, "60");

if ($errno) {
echo $errstr;
$ozekiSMSCredit = 0;
}

//$greeting = fgets($ozekiSMSSocket,1000);

$greeting = trim(fgets($ozekiSMSSocket,1000));
$randomstring = trim(fgets($ozekiSMSSocket,1000));

if (strlen($randomstring)) {
$reply = md5($randomstring.$account).chr(13).chr(10);
fputs($ozekiSMSSocket,$reply);
$ozekiSMSCredit = trim(fgets($ozekiSMSSocket,1000));
}
return $ozekiSMSCredit;
}

function sms_send($msisdn,$msg) {
global $ozekiSMSSocket;
global $ozekiSMSCredit;
if ((isset($ozekiSMSSocket)) && ($ozekiSMSCredit>0)) {
$msg=$msisdn.' '.$msg.chr(13).chr(10);
fputs($ozekiSMSSocket,$msg);
} else {
$ozekiSMSCredit = 0;
}
return $ozekiSMSCredit;
}

function sms_receive() {
global $ozekiSMSSocket;
$received = '';
if (isset($ozekiSMSSocket)) {
$msg='OZEKI_INBOX'.chr(13).chr(10).'GET'.chr(13).chr(10);
fputs($ozekiSMSSocket,$msg);
$count = trim(fgets($ozekiSMSSocket,1000));
for ($x=0;$x<$count;$x++) {
$line = fgets($ozekiSMSSocket,1000);
$received .= trim($line).chr(13).chr(10);
}
}
return $received;
}

function sms_disconnect() {
global $ozekiSMSSocket;
if (isSet($ozekiSMSSocket)) fclose($ozekiSMSSocket);
}
?>

1

Решение

Причина тайм-аута в том, что вы пытаетесь прочитать 1000 байтов из сокета, но сервер ничего не отправляет.

Относительно того, почему «сервер Ozeki sms» ничего не отправляет, я не знаю. Но вы должны проверить документацию, если вы действительно ожидаете приветствие сразу после подключения. Обычно вы ожидаете, что клиент инициирует связь, отправив запрос.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]