DocumentaciónENVIAR(s, valor)

ENVIAR(s,valor)\texttt{ENVIAR}(s, valor)

Nombre

ENVIAR - Envia datos a traves de un socket conectado.

Sinopsis

ok = ENVIAR(s, valor)

Descripcion

Transmite datos por un socket ya conectado.

El uso habitual es enviar un STRING o un registro de TABLA, dejando que el runtime serialice el valor segun corresponda.

Comportamiento

  • Recibe un SOCKET conectado y un valor a transmitir.
  • Acepta especialmente STRING y registros de TABLA.
  • Retorna VERDADERO si el envio fue exitoso.

Funciones API relacionadas

  • CONECTAR()
  • RECIBIR()
  • DESCONECTAR()

Parámetros

ParámetroTipoDescripción
sSOCKETSocket (por referencia).
valorANYDato a enviar. Uso recomendado: STRING o registro de TABLA, por ejemplo tabla[i].

Valor de retorno

LOGICO - VERDADERO si el dato fue enviado correctamente; FALSO si el socket no esta conectado o ocurrio un error de envio.

Ejemplo

ejemplo.blox
//
// ENVIAR() - Envía datos a través del socket conectado. 
//
// Sintaxis: 
// ENVIAR(s, datos)
//
// Recibe dos parámetros: una variable tipo SOCKET (el socket conectado) 
// y una variable que puede ser de tipo STRING o TABLA (los datos a enviar).
//
// Ejemplo:
//      ENVIAR(s, "Hola mundo")
//      ENVIAR(s, t)      
//
// Donde t es una tabla serializable
// No retorna valor, pero en caso de falla produce un mensaje de error.
// El resultado de la operación puede verificarse revisando el 
// atributo <conectado> o <status>.
//


// SERVIDOR en comunicacion TCP/IP
//
FUNCION PRINCIPAL
INICIO "SERVIDOR TCP"

    SOCKET srv, client
    srv.ip = "127.0.0.1"
    srv.port = 5555

    TABLA datos
    NUMERICO i
    LOGICO sts

    ESCUCHAR(srv)

    IMPRIMIR("\nEsperando conexion del CLIENTE...\n\n")

    client = ACEPTAR(srv)
  
    SI (client.conectado) ENTONCES
        IMPRIMIR("\n\nCLIENTE conectado. Enviando datos...\n")
        i = 1
        MIENTRAS (i <= datos.dim) HACER
            sts = ENVIAR(client, datos[i])
            IMPRIMIR("\n", datos[i], "status = ", sts)
            i = i + 1
        FIN_MIENTRAS
        DESCONECTAR(client)
        IMPRIMIR("\nCLIENTE Desconectado!\n")
    SINO
        IMPRIMIR("\n\nCLIENTE NO conectado. (client.conectado == FALSO))\n")
    FIN_SI

    DESCONECTAR(srv)
    IMPRIMIR("\n\SERVIDOR terminado.")
FINAL