PHP 套接字读取错误


PHP Socket read error

>我的HTML页面中有三个按钮连接到php脚本,它们使用套接字连接将命令发送到另一个应用程序。

1(当应用程序接收命令并且Xampp服务器在本地主机上运行时,它可以正常工作,但是当我尝试在网络上发送命令时,它有时有效,有时则无效。

2(这背后的原因是什么。

按钮1的代码

<?php
// Fill up array with names
$q=$_GET["q"];

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$host = $_GET["vz"];
$port=6100;
$buffer=$q ."'0";
$len= strlen($buffer);
socket_connect($sock, $host, $port);
socket_sendto($sock, $buffer, $len, 0 , $host, $port);

$buffer='COMMAND HERE';
$len= strlen($buffer);

socket_sendto($sock, $buffer, $len, 0 , $host, $port);
echo( socket_read($sock, 65535) );
socket_close($sock);

?>

按钮 2 的代码

?php

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$host = $_GET["x"];
$port=6100;
$buffer='COMMAND HERE';
$len= strlen($buffer);
socket_connect($sock, $host, $port);
socket_sendto($sock, $buffer, $len, 0 , $host, $port);

$len= strlen($buffer);

socket_sendto($sock, $buffer, $len, 0 , $host, $port);
echo( socket_read($sock, 65535) );
socket_close($sock);

?>

按钮 3 的代码

<?php

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$host = $_GET["x"];
$port=6100;
$buffer='COMMAND HERE';
$len= strlen($buffer);
socket_connect($sock, $host, $port);
socket_sendto($sock, $buffer, $len, 0 , $host, $port);

$len= strlen($buffer);

socket_sendto($sock, $buffer, $len, 0 , $host, $port);
echo( socket_read($sock, 65535) );
socket_close($sock);

?>

检查此代码的错误,可能是超时?

if ($socket === false) {
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);
    die("Couldn't create socket: [$errorcode] $errormsg");
}

以下代码适用于chrome和最新版本的Internet Explorer