PHP 動作環境: Windows Server 2012 R2 VL (阿里雲 - 青島) + PHP5.4.44 + MYSQL 5.6 + IIS8.5 + URL Rewrite 2.0 + FastCGI
サーバー EXE 動作環境: Windows Server 2012 R2 VL (阿里雲 - QingDao) + E Language 5.3
function send($in){ try{ $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 5, "usec" => 0)); socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array("sec" => 180, "usec" => 0)); $result = socket_connect($socket, '127.0.0.1', 9999); $out = ""; socket_write($socket, $in, strlen($in)); $out = socket_read($socket, 10240); socket_close($socket); return $out; }catch(Exception $e){ exit ("<script>alert('ERR::0');</script>"); }}
あなたはサーバー側プログラムはどのように起動されるのでしょうか?
すでに例外処理が行われているので、例外情報を隠蔽すべきではありません
エラーが発生した場合は、エラー情報も提供する必要があります
こうすることで、エラーの原因を判断する根拠を得ることができます、 右?
例外情報をエコーするか、socket_strerror(socket_last_error($socket)) を使用してソケットによって生成されたエラーを出力します。
サーバー側プログラムは exe です。もちろん、ダブルクリックするだけです。システムサービスを作成しません。 。 。 PHP から返される例外情報は、5 行目のsocket_connect での予期しないエラーです。接続に失敗し、すべてが予想外でした。 。 。 socket_strerror(socket_last_error($socket)) はどこに配置する必要がありますか?
サーバー プログラムはどのように起動しますか?
すでに例外処理が行われているので、例外情報を隠蔽すべきではありません
エラーが発生した場合は、エラー情報も提供する必要があります
こうすることで、エラーの原因を判断する根拠を得ることができます、 右?
function send($in){ $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 5, "usec" => 0)); socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array("sec" => 180, "usec" => 0)); $result = socket_connect($socket, '127.0.0.1', 9999); $out = ""; socket_write($socket, $in, strlen($in)); $out = socket_read($socket, 10240); socket_close($socket); return $out;}
例外情報をエコーすることも、socket_strerror(socket_last_error($socket)) を使用してソケットによって生成されたエラーを出力することもできます
PHP によって返された例外情報は、 5 行目のsocket_connect
例外情報をエコーするか、socket_strerror(socket_last_error($socket)) を使用してソケットによって生成されたエラーを出力します
if ($result == false) echo socket_strerror(socket_last_error($socket));
if ($result == false) echo socket_strerror(socket_last_error($socket));
if ($result == false) echo socket_strerror(socket_last_error($socket));