3

これは、(ホストされたサーバー上で)CurlでPHPを使用する場合の問題です。54512ポート(たとえば)でリモートデバイス(LED状態)を制御しようとしています。には、短いCGIコマンドで連結さ$urlれた番号が含まれます。IP:port

以下はコードフラグメントです。

$sensorIP = "77.134.85.187:54512"; // IP:port format

$url = $sensorIP . "/setParam.cgi?DOStatus_02=0" ; // set E2210 LED off

echo $url; // 

$result =  accessURL ($url); // set LED state on E2210 remote unit  

このコードはタイムアウトします。$ urlをWebブラウザーのアドレスとして使用すると、正常に機能します。したがって、受信ポート54512はブロックされません。IP:80フォームに使用する$urlと正常に動作します(受信ポートが80に設定されています)。このオプションを使用しようとしましたCURLOPT_PORTが、PHPスクリプトがタイムアウトします。

送信サーバーの送信HTTPはポート番号をブロックしていません。ホスティング会社に確認しました。彼らは私にプログラミングエラーがあると信じていますが、どこで?

ありがとう!アル

4

2 に答える 2

4

回避策:

  1. 試す$sensorIP = "http://77.134.85.187:54512";

  2. 送信ポート 54512 が開いていることを確認します (ホスティング プロバイダーに確認してください)。

  3. 関数の後curl_exec()、追加$output = curl_getinfo($ch);して印刷し、出力を確認します。そこから情報を得ることができます。

  4. URL の一部としてポート番号を含めないでください。代わりに次を使用します。

    curl_setopt($ch, CURLOPT_PORT, '54512');

于 2013-01-04T13:13:14.217 に答える