Forum Post: RE: 4GL Sockets and Hexadecimal values...

  • Thread starter Thread starter MBeynon
  • Start date Start date
Status
Not open for further replies.
M

MBeynon

Guest
No, it puts it into a MEMPTR using PUT-UNSIGNED-LONG before placing it into the main socket memptr. I do this as the API requires that: "All multi-byte numeric values are to use little-endian byte ordering." PROCEDURE SocketConnect : /*------------------------------------------------------------------------------ Purpose: Handle the response from the remote server Parameters: none Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipcHost AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER ipiPort AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipcProtocol AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER ipiTimeout AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipcUserName AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER lvi64Header AS INT64 NO-UNDO. DEFINE INPUT PARAMETER ipcPassWord AS CHARACTER NO-UNDO. DEFINE OUTPUT PARAMETER oplErrorMsg AS LOGICAL NO-UNDO. DEFINE VARIABLE lvmMEMPTRHeader AS MEMPTR NO-UNDO. ASSIGN SET-SIZE(lvmMEMPTRHeader) = 8 SET-BYTE-ORDER(lvmMEMPTRHeader) = LITTLE-ENDIAN PUT-UNSIGNED-LONG(lvmMEMPTRHeader,1) = lvi64Header. do some stuff... /* Got a socket connection - now make the request */ ASSIGN SET-SIZE (lvhBuffer) = 8 + 2 + 8186 PUT-BYTES (lvhBuffer,1) = lvmMEMPTRHeader PUT-BYTES (lvhBuffer,9) = lvmMEMPTRDataSize PUT-STRING (lvhBuffer,11) = ipcUserName + "0" PUT-STRING (lvhBuffer,23) = ipcPassWord + "0". do more stuff.... Thanks, Mark.

Continue reading...
 
Status
Not open for further replies.
Back
Top