necesito hacer una conexión por medio de sockets a un servidor de mi proveedor.
Probando con un telnet puedo enviar una cadena correctamente y entonces me devuelve otra cadena.
El problema está en que no puedo obtener esa cadena desde php. Cuando ejecuto el script desde un navegador la respuesta que obtengo es: success. pero si agrego un socket_read me dice que hay un error 500 Internal Error
error_reporting(E_ALL);
$service_port = "25000";
$address = "128.9.55.102";
/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() failed: reason: " .
socket_strerror(socket_last_error()) . "\n";
}
echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
echo "socket_connect() failed.\nReason: ($result) " .
socket_strerror(socket_last_error($socket)) . "\n";
}
$out = '';
echo "Sending request...";
socket_write($socket, $autenticador, strlen($autenticador));
echo socket_strerror(socket_last_error());
echo "OK.\n";
echo "Reading response:\n\n";
echo stream_get_line($socket, 1024);
// las siguientes líneas dan error
//while ($out = socket_read($socket, 1024)) {
// echo $out;
//}
echo socket_strerror(socket_last_error($socket));
socket_close($socket);