Foros del Web » Administración de Sistemas » Software para Servers »

Programar un socket

Estas en el tema de Programar un socket en el foro de Software para Servers en Foros del Web. Buenos dias, Necesito recibir informacion en mi servidor web y almacenarla en base de datos. Estuve haciendo la prueba con un socket en php, y ...
  #1 (permalink)  
Antiguo 08/03/2012, 15:11
 
Fecha de Ingreso: septiembre-2010
Mensajes: 17
Antigüedad: 13 años, 7 meses
Puntos: 3
Programar un socket

Buenos dias,

Necesito recibir informacion en mi servidor web y almacenarla en base de datos.

Estuve haciendo la prueba con un socket en php, y en localhost y desde otra computadora de mi red, funciona perfectamente por medio de un telnet.

Lo que no se si esto realmente me sirve, primero porque la informacion viene de un dispositivo GPS que me envia la informacion por TCP, o UDP.

Entonces me gustaria que me ayudaran a hacer un socket para correr en mi servidor. El que tengo actualmente es este, pero solo me sirve por telnet local.

Saludos.

Código:
<?php
error_reporting(E_ALL);

/* Permitir al script esperar para conexiones. */
set_time_limit(0);

/* Activar el volcado de salida implícito, así veremos lo que estamo obteniendo
 * mientras llega. */
ob_implicit_flush();

$address = '192.168.1.103';
$port = 8080;

if (($sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP)) === false) {
    echo "socket_create() falló: razón: " . socket_strerror(socket_last_error()) . "\n";
}

if (socket_bind($sock, $address, $port) === false) {
    echo "socket_bind() falló: razón: " . socket_strerror(socket_last_error($sock)) . "\n";
}

if (socket_listen($sock, 5) === false) {
    echo "socket_listen() falló: razón: " . socket_strerror(socket_last_error($sock)) . "\n";
}

do {
    if (($msgsock = socket_accept($sock)) === false) {
        echo "socket_accept() falló: razón: " . socket_strerror(socket_last_error($sock)) . "\n";
        break;
    }
    /* Enviar instrucciones. */
    $msg = "\nBienvenido al Servidor De Prueba de PHP. \n" .
        "Para salir, escriba 'quit'. Para cerrar el servidor escriba 'shutdown'.\n";
    socket_write($msgsock, $msg, strlen($msg));

    do {
        if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
            echo "socket_read() falló: razón: " . socket_strerror(socket_last_error($msgsock)) . "\n";
            break 2;
        }
        if (!$buf = trim($buf)) {
            continue;
        }
        if ($buf == 'quit') {
            break;
        }
        if ($buf == 'shutdown') {
            socket_close($msgsock);
            break 2;
        }
        $talkback = "PHP: Usted dijo '$buf'. \n";
        socket_write($msgsock, $talkback, strlen($talkback));
        echo "$buf\n";

		
    } while (true);
    socket_close($msgsock);
} while (true);

socket_close($sock);
?>
Si tienen hecho alguno en otro lenguaje y me explican como ponerlo a correr todo el tiempo, bienvenido sea.

Saludos y muchas gracias por su tiempo.

Etiquetas: ip, php, red, servidor, socket
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:21.