PHP Socket读取错误

时间:2014-12-16 05:52:41

标签: javascript php html html5

我的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);


?>

1 个答案:

答案 0 :(得分:0)

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

if ($socket === false) {
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);

    die("Couldn't create socket: [$errorcode] $errormsg");
}