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