
Writes a message to a named pipe and then reads a message back.
PipeClientSendRecvData(pipe-handle, data, read-timeout)
(i) pipe-handle pipe handle returned by PipeClientOpen.
(s) data message/data to send to named pipe.
(i) read-timeout specifies the timeout period in seconds, or -1 for no timeout.
(s) message Returns a message string on success, or "*ERROR*" or "*TIMER*".
;------------
; CLIENT.WBT
;------------
SERVER = "myserver" ; Or "." for the local machine
pipename = "fluggle"
pipepath = StrCat("\\",SERVER,"\pipe\",pipename)
querydata = "GET_TIME"
timeout = -1
IntControl(12,5,0,0,0);terminate quietly
notice = StrCat(@CRLF,@CRLF,"[ Press CTRL+BREAK to exit script ]")
BoxOpen("Time Client","Initializing connection to server...")
While @TRUE
pipehandle = PipeClientOpen(pipepath,timeout)
If pipehandle=="*ERROR*" || pipehandle=="*TIMER*" Then Continue ; try again
data=PipeClientSendRecvData(pipehandle, querydata,timeout)
BoxText(StrCat("Data sent from server = ", data, notice))
PipeClientClose(pipehandle)
EndWhile
Message("Client","Exited")
Exit
;------------
; SERVER.WBT
;------------
pipename="\\.\pipe\fluggle"
timeout = -1
IntControl(12,5,0,0,0);terminate quietly
notice = StrCat(@CRLF,@CRLF,"[ Press CTRL+BREAK to exit script ]")
BoxOpen("Time Server","Initializing - Awaiting connect from Client")
While @TRUE ; General Server loop
pipehandle = PipeServerCreate(pipename,timeout)
If pipehandle=="*ERROR*" || pipehandle=="*TIMER*" Then Continue
readinfo = PipeServerRead(pipehandle, timeout)
If readinfo=="*ERROR*" || readinfo=="*TIMER*"
PipeServerClose(pipehandle,0)
Continue ; try again
EndIf
If readinfo == "GET_TIME"
response= TimeYmdHms()
Else
response = "ERROR: UNKNOWN REQUEST"
EndIf
rslt=PipeServerWrite(pipehandle,response)
BoxText(StrCat("Data sent to client = ",response, notice))
PipeServerClose(pipehandle,timeout)
EndWhile
Message("Server","Exited")
Exit
PipeClientClose, PipeClientOpen, PipeInfo, PipeServerClose, PipeServerCreate, PipeServerRead, PipeServerWrite