o se puede leer datos del socket, no se puede vincular a la dirección en php
Tengo una balanza conectada a una PC cliente con un puerto serie. La PC cliente está instalada con SERPROXY. Usando telnet xx.xx.xx.xx puerto 25003, los datos se muestran con éxito. Significa que SERPROXY funciona bien y el reenvío de puertos también se realiza correctamente en el enrutador. Compartiré la IP pública real a pedido para ver los datos usando telnet.
¿Cómo voy a leerlo y repetirlo en la página web?
¿El siguiente fragmento de código falla al enlazar usando sockets?
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);
Es mi primer intento en socket. ¿Tiene que ser obligatoriamente una comunicación bidireccional, es decir, por ejemplo, server.php y client.php? De lo contrario, los enchufes no funcionan.
¿Hay alguna otra forma en que podamos leer la salida de dicha dirección IP y puerto en la página web de php?
Pasé varias horas pero sin suerte. La ayuda sería muy apreciada
NOTA: el servidor está alojado en bluehost. las extensiones de socket están habilitadas, verificadas.
EDIT: También confirmó con bluehost que el puerto 25003 está abierto desde su lado.
EDIT: Intenté lo siguiente también, pero fue en vano.
$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);
¿Dónde podría estar yendo mal? ¿Estoy totalmente en el camino equivocado?