Re: making an http server
- From: "Ignacio Machin \( .NET/ C# MVP \)" <ignacio.machin AT dot.state.fl.us>
- Date: Wed, 30 Nov 2005 14:20:35 -0500
Hi,
You can use a sync queue for example, in your main thread (the one
accepting connections) each time a new connection is received the TcpClient
(or Socket) is stored in a Sync'd Queue, a new thread is spawn to execute
the serving methid, this method dequeue the first element from the queue and
it's the sockets it uses
cheers,
--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation
"lucifer" <umeshktangnu@xxxxxxxxx> wrote in message
news:1133369609.498812.314330@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> hi
> i am making an http server
> it has following functions
> main()
> {
> if option is "-?", output the hints and stop
> check the directory supplied is sensible and not a security risk
> become a daemon process
> ignore child programs (to avoid zombies when child processes stop)
>
> create a socket, bind it to a port number and start listening to the
> socket
>
> forever {
> wait and accept incoming socket connection
> start a new thread
> web function
> else close new connection
> }
> }
>
> log()
> {
> outputs error, sorry or log messages to the nweb.log file
> if a sorry message, transmit it to the browser as a fake HTML response
> if error or sorry message the program is stopped
> }
>
> web() - this function returns the request back to the browser
> {
> read from the socket the HTTP request
> check it's a simple GET command
> check no parent directory requested to escape the web servers home
> directory
> if no file name given assume index.html
> check the file extension is valid and supported
> check the file is readable by opening it
> transmit the HTTP header to the browser
> transmit the file contents to the browser
> sleep thread for 1 second
> stop
> }
> mine problem is how can i start a new thread for every new request i
> recieve
> plz help
>
.
- References:
- making an http server
- From: lucifer
- making an http server
- Prev by Date: Re: communicating with remote server via http
- Next by Date: Re: Serious Threading.Monitor issues in .NET 2.0
- Previous by thread: Re: making an http server
- Next by thread: marshaling error when calling C++ DLL within C#
- Index(es):
Relevant Pages
|