Concurrent www proxy server with persistent client connections

Dibatalkan Dipasang Feb 18, 2008 Dibayar saat pengiriman
Dibatalkan Dibayar saat pengiriman

For this work, **you are provided with a simple www proxy server in C.**

You have to develop a more efficient and useful proxy server by extending it. It is broken down into **five steps**, which must be done in the specified order.

Only HTTP/**1.1** protocol must be used for this job.

The five steps are:

1) *Concurrent request processing*: Handle requests concurrently, dont wait for previous requests to complete before starting to process a new request from a different client.

2) *Persistent client connections*: Leave client connections open, to allow each client to send asequence of requests on each connection. Only close a client connection when the client requests it by a "Connection : close" header line, or when aresponse does not have a self defined length.

3) *Asynchronous close by clients*: Handle the possibility of a client "asynchronously" closing a connection. This could happen at any time, but is most likely to happen between client requests,e.g., by a time-out in the client.

4)*Time-out for clients*: Implement a time-out that closes an idle client connection approximately 10 seconds after the last request was received on it.

5)*Pipelining for clients*: If a client pipelines its requests (i.e., sends a request before the previous request has been completed), dont wait for previous requests to complete before starting to process anew request from the same client. *Make sure that responses are sent in the sam order as requesta are received.

*

You also need to provide a report that indicates which parts you have implemented, and explaining the **why** and **how** for each part.

Note that the report should be brief: the **why** parts about the same length as the **what** parts, and the **how** parts about **twice** that length.

## Deliverables

1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.

2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):

a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.

b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.

3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).

## Platform

Use any browser for testing.

Program to be written in **C**.

**What to submit:

**1) The source code of your program, adequately commented. (Filenames: *.c, *.h).

2) A makefile to compile your program and produce an executable program named "proxy".

3) Your report. This must be a plain text file, not Word, etc.

Pemrograman C SO Chrome Teknik Linux Mac OS MySQL PHP Perancangan Perangkat Lunak Pengujian Perangkat Lunak Administrator Sistem UNIX Destop Windows

ID Proyek: #3730037

Tentang proyek

Proyek online Aktif Feb 21, 2008