DocumentaciónENVIAR(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
SOCKETconectado y un valor a transmitir. - Acepta especialmente
STRINGy registros deTABLA. - Retorna
VERDADEROsi el envio fue exitoso.
Funciones API relacionadas
CONECTAR()RECIBIR()DESCONECTAR()
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| s | SOCKET | Socket (por referencia). |
| valor | ANY | Dato 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