PipeServerClose

Closes a named pipe instance.

Syntax:

PipeServerClose(pipe-handle, timeout)

Parameters:

(i) pipe-handle pipe handle returned by PipeServerCreate.

(i) timeout specifies the timeout period in seconds, or -1 for no timeout.

Returns:

(i/s) returns 1 on success, or "*TIMER*".

 

If there is a client connected to the pipe, the function will wait "timeout" seconds for the client to close its end of the pipe.

Example:


;------------
; 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
See Also:

PipeClientClose, PipeClientOpen, PipeClientSendRecvData, PipeInfo, PipeServerCreate, PipeServerRead, PipeServerWrite