我的html页面中有三个按钮连接到php脚本,他们使用套接字连接将命令发送到另一个应用程序。
1)当接收命令的应用程序和xampp服务器在localhost上运行时,它工作正常,但是当我尝试在网络上发送命令时,它有时会起作用,有时它不起作用。
2)这背后的原因可能是什么。
button1的代码
<?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);
?>
答案 0 :(得分:0)
使用此代码检查错误,可能是超时?
if ($socket === false) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't create socket: [$errorcode] $errormsg");
}