RE: questions about the gui
Yes, this helps, I did not understand that psh was a debugging tool. About (app), I still would like to know, if there was a way to run more than one application on the same computer and be sure that they would not by accident decide to use the same port. I understand that within one app there is no problem (as long as there are not too many users), but with two or more? Or do my network programming memories need a refresh? Denis > From: johtob...@gmail.com > To: picolisp@software-lab.de > Subject: Re: questions about the gui > Date: Sat, 21 Nov 2015 08:51:43 +0100 > > > Hello, > > It is a local shell that connects to a local webserver. > It can be used for webdevelopment, you can expect variables and so on. > (app) open a new process with a new port. So each process and each > single user linked to it can has a own state. The user can connects to > his new port > Does it help? > > Am 21.11.2015 08:28 schrieb "Denis Fourt" > <denis.p...@hotmail.com<mailto:denis.p...@hotmail.com>>: > Hello, > After reading the gui documentation, I would like some help on the > following topics, please : > a) I am not sure to understand the purpose and the uses of the psh function -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: questions about the gui
Hi Denis, in addition to what Joh-Tob said, let me correct some issues about 'app'. > b) I understand that calling the (app) function allows multiple users to > access > an application at the same time, which makes web apps and collaborative > software > possible What (app) really does is establishing a "session". When a client (browser) connects to the server, the server forks a child process which sends a response to the request. This is typically a GET request, and the child sends a HTML page to the client. At the same time, the server parent process continues to listen for further requests. Now, when (app) is NOT called in the child while it generates its response (i.e. it sends a static page), then the child process terminates. If, however, (app) is called, the child does not terminate. It allocates a new port to listen for further requests from that client, allows login, keeps the session's state, and so on. So multi-user access to the application is also possible without (app), but each request will be answered in a fire-and-forget style. > a process listening on different port is created for each user isn't it? right, this is what is happening. > So how do you avoid conflict when running independent applications? To have more than one application running on a single machine, you start several server parent processes. Each of them will be independently listening on its own port. We use 'httpGate' as a port proxy, so that from the browser's view the port is always 80 (HTTP) or 443 (HTTPS), but is relayed on the server to the right port (and thus server process). > In case of single user desktop apps, not calling (app) and reserving a port > seems sufficient. But in case of several users? So, as you see, (app) has nothing to do with single- or multi-user. Also, a single application will need (app) to allow sessions, and this in turn has nothing to do with how many users access this application. ♪♫ Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: questions about the gui
I assume you fear that a port gets binded to a socket twice. That can not happen, since unix/linux does not allow two processes to bind the same process. (app) calls the pil function (port). The port function itself is able to find a unused port an binds it. For more details read (doc 'port) If you are good with C you might want to look inside net.c and understand doport. Picolisp takes care of the ports for you. 2015-11-21 9:36 GMT+01:00 Denis Fourt <denis.p...@hotmail.com>: > Yes, this helps, I did not understand that psh was a debugging tool. About > (app), I still would like to know, if there was a way to run more than one > application on the same computer and be sure that they would not by > accident decide to use the same port. I understand that within one app > there is no problem (as long as there are not too many users), but with two > or more? Or do my network programming memories need a refresh? > > Denis > > > From: johtob...@gmail.com > > To: picolisp@software-lab.de > > Subject: Re: questions about the gui > > Date: Sat, 21 Nov 2015 08:51:43 +0100 > > > > > > Hello, > > > > It is a local shell that connects to a local webserver. > > It can be used for webdevelopment, you can expect variables and so on. > > (app) open a new process with a new port. So each process and each > > single user linked to it can has a own state. The user can connects to > > his new port > > Does it help? > > > > Am 21.11.2015 08:28 schrieb "Denis Fourt" > > <denis.p...@hotmail.com<mailto:denis.p...@hotmail.com>>: > > Hello, > > After reading the gui documentation, I would like some help on the > > following topics, please : > > a) I am not sure to understand the purpose and the uses of the psh > function > -- > UNSUBSCRIBE: mailto:picolisp@software-lab.de?subjectUnsubscribe >
Re: questions about the gui
Hello, It is a local shell that connects to a local webserver. It can be used for webdevelopment, you can expect variables and so on. (app) open a new process with a new port. So each process and each single user linked to it can has a own state. The user can connects to his new port. Does it help? Am 21.11.2015 08:28 schrieb "Denis Fourt": > Hello, > After reading the gui documentation, I would like some help on the > following topics, please : > a) I am not sure to understand the purpose and the uses of the psh function