我有一个通过串行端口连接到客户端PC的秤。客户端PC已安装SERPROXY。使用telnet xx.xx.xx.xx端口25003,可以成功显示数据。这意味着SERPROXY正常工作,并且端口转发也已在路由器中正确完成。我将根据要求共享真实的公共IP,以便使用telnet查看数据。
我该如何在网页上阅读和回显它?
以下代码在使用套接字绑定时失败?
error_reporting(E_ALL);
// Server IP address
$address = "xx.xx.xx.xx"; // here goes the real public ip address
// Port to listen
$port = 25003;
$mysock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($mysock,$address, $port) or die('Could not bind to address');
socket_listen($mysock, 5);
$client = socket_accept($mysock);
// read 1024 bytes from client
$input = socket_read($client, 1024);
echo $input ;
socket_close($client);
socket_close($mysock);
这是我第一次尝试使用套接字。它是否必须是强制双向通信,例如,server.php和client.php?否则,套接字将无法正常工作。
还有其他方法可以读取php网页中所述IP地址和端口的输出吗?
花了几个小时,但没有运气。帮助将不胜感激。
注意:服务器托管在bluehost上。启用并验证了socket_extensions。
编辑:还通过bluehost确认端口25003从其侧面打开。
编辑:也尝试过以下方法,但无济于事。
$fp = fsockopen("tcp://xx.xx.xx.xx", 25003, $errno, $errstr);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
while (!feof($fp)) {
$weight = trim(fgets($fp, 64)," ");
}
}
echo $weight;
fclose($fp);
我哪里可能出问题了?我完全走错了路吗?