On Thu, 1 Mar 2007, Jason P Sage wrote:
> I've made some progress with the simpleipc unit however I found a disturbing > "quirk" for the Windows implementation. > > I can definitely make an IPC Server and an IPC client that can send messages > to that server... > > However.... > > If the IPC client is invoked as a cgi application via a web server, it never > can send a message to the IPC server. This is repeatable. > > I looked at the windows simpleipc.inc (Win32 version) and there is code for > window handles and such. > > Is it possible this implementation of simpleipc only works when gui > resources are available? > > I thought I had this thing nailed - but it looks like the simpleipc unit > just doesn't work when fired from apache. > > This is confirmed by the fact that I can execute the program from a command > line and the message does in fact get passed (I see the message appear in > the console window that the server is running). > > When I execute the program via cgi - I get an error message in the web page > that is generated by my cgi app - so I know its firing. Furthermore the > error message specifically tells me where the failure is. It fails when I > try to make the semaphore "active". See Snippet below. > > ---Code Snippet----BEGIN > > With TSimpleIPCClient.Create(Nil) do > begin > ServerID:=p_saSendToWhom; > try > Active:=True; > except > bServerOffline:=true; > end; > if not bServerOffline then > begin > SendStringMessage(p_sa); > Active:=False; > end; > Free; > end; > > ---Code Snippet----END > > This code falls into the except block when executed via web software like > apache, but from the command line falls through without error. > > Does anyone have any suggestions? Does the Windows version of simpleipc not > work if the application can not get a window handle? Yes. Messages are sent via a window handle, and a CGI app does not have this ability. Michael. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal