Página 1 de 1

Problemas Comunicacion con socket

Publicado: Mar Oct 19, 2021 2:55 pm
por alexandrasoft
Hola tengo que comunicarme mediante Socket TCP/IP y protocolo ASCII con un servidor , actualmente lo hago con Visual .NET debido a que usaba la versión 2.3 de XAiler , pero ahora como estoy migrando a la versión 7.3 con Harbourd encontré que mediante INET se podía hacer . Me conecto bien incluso me da bien el estatus del Socket pero al enviar el comando el servidor no lo “entiende” por lo que pienso que estoy enviando el comando en un formato erróneo, el problema es que no encuentro documentación de Harbour que me aclare el tema solo describe la función . Este es el código que uso y la documentación del servidor. Me podrían dar una mano para ver que hago mal. Desde ya muchas gracias

respuesta :=" “ sMensaje = "02,41,30,31,01,01,03"
hb_inetInit()

socket:=hb_inetConnect("186.138.7.13",8082)
status:=hb_inetstatus(socket)
buffersizes:=hb_inetGetRcvBufSize(socket)

respuetaSend:=hb_inetSendAll(socket,AllTrim(sMensaje))

respuestaIn:=hb_inetRecvAll(socket,@respuesta)

MsgInfo(respuesta)

La documentación del servidor es la siguiente:
CARACTERISTICAS:
• Estructura Master/Slave
• La comunicación entre el Master y la WBox se efectúa mediante una red TCP/IP
• Protocolo ASCII
Reseña acerca de los comandos:
Los comandos son codificados en 3 bytes, representados por un numero hexadecimal de 3 dígitos. El primero de ellos indica de que tipo es el comando, mientras que los otros 2 nos indican la acción a tomar.
La Estructura de los paquetes de transmisión es:
Campo Carácter Nro de Bytes Descripción

STX 02h 1 Caracter que indica el inicio de transmisión
MSG n Mensaje con n caracteres ASCII (Ver Nota)
ETX 03h 1 Caracter que indica el fin de transmisión
Nota: MSG tiene la siguiente estructura:
CMD XXX 3 Comando 3 Caracteres ASCII
DATOS Variable Datos en formato ASCII y pueden existir o no.
Dato conocido de acuerdo al comando que se esté enviando